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 Szablon:Ekspresowe kasowanie 10 1593 541041 540941 2026-04-27T18:46:46Z Persino 2851 541041 wikitext text/x-wiki <includeonly>{{#invoke:Pudełko|Ogólne pudełko | nazwa = mbox | typ = poważny | grafika = {{ikona|ek|50}} | nazwa przestrzeni nazw = {{#invoke:Pudełko|Nazwa przestrzeni nazw|Template}} | tekst = {{P|{{Ekspresowe kasowanie/wstęp}}<!-- -->{{#if:{{{1|{{{powód|}}}}}}|<!-- <!-- UWAGA! Dodając tutaj nowe uzasadnienie w {{Ekspresowe kasowanie/powód|...}} pamiętaj o zaktualizowaniu {{Ekspresowe kasowanie/usuń|...}} --> {{Ekspresowe kasowanie/powód|{{{1|{{{powód|}}}}}}}} {{Ekspresowe kasowanie/admin}}<!-- -->}}}} | poniżej = {{Ekspresowe kasowanie/usuń|{{{1|{{{powód|}}}}}}}} | kategorie = {{#if:{{{bez kategorii|}}}||__NOINDEX__{{#invoke:Skrót|Kategoria|Ekspresowe kasowanie}}}} }}</includeonly><!-- --><noinclude>{{Dokumentacja}} <!-- Interwiki dodawaj do podstrony /opis, nie tutaj! --> </noinclude> gaumw16bwcbn6sanwge26lwdwjx6dwp Szablon:Status 10 27687 541093 540946 2026-04-27T21:47:46Z Persino 2851 541093 wikitext text/x-wiki <includeonly><!-- -->{{#switch:{{#if:{{{artykuł|}}}<!-- -->|strona artykułu<!-- -->|{{#invoke:Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych=tak}}<!-- -->}}<!-- -->|podręcznik|podręcznik dla dzieci|strona artykułu=<!-- -->{{#invoke:Ramka|Szablon|parametry funkcji modułu pudełek=tak|Nazwa=Status/silnik | ukończona = {{Zastąp|ciąg={{{1|}}}|wzór=^%s*[%-%+]?%s*0*(%d+)%%?%s*$|zamień=%1}} | polecana = {{#if:{{Dopasuj|ciąg={{{1}}}|wzór=^%s*(%+).*$}}|tak}} | typ = {{{typ|}}} | nie kategorie = | id = {{{id|}}}<!-- -->}}<!-- -->{{#if:{{{1|}}}|<!-- -->{{#if:{{Dopasuj|ciąg={{{1}}}|wzór=^%s*([%+%-]).*$}}|<!-- -->{{#ifeq:{{#invoke:Pudełko|Nazwa przestrzeni nazw 2}}|Wikijunior|<!-- -->{{#invoke:Skrót|Kategoria|Wikijunior}}<!-- -->{{#if:{{{junior|}}}|<!-- -->{{#invoke:Ramka|PrzetwarzajIterującCiąg |ciąg={{{junior}}} | 1= {{((}}#if:{{((}}ciąg{{))}} {{!}}{{((}}#invoke:Skrót{{!}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}{{))}} {{))}}<!-- -->}}<!-- -->}}<!-- -->}}<!-- -->{{#if:{{{archiwalna|}}}|{{#invoke:Skrót|Kategoria|Archiwalne}}}}<!-- -->{{#if:{{Dopasuj|ciąg={{#invoke:Pudełko|Nazwa jednostki 2}}|wzór=^([^/]+)$}}|<!-- -->{{#invoke:Skrót|Kategoria|Wszystkie książki}}<!-- -->{{#invoke:Skrót|Kategoria|Spis alfabetyczny/{{Dopasuj|ciąg={{#invoke:Pudełko|Nazwa jednostki 2}}|wzór=^(.).*$}}}}<!-- -->{{#if:{{{poziom|}}}|<!-- -->{{#invoke:Ramka|PrzetwarzajIterującCiąg |ciąg={{{poziom}}} | 1= {{((}}#if:{{((}}ciąg{{))}}<!-- -->{{!}}{{((}}#invoke:Skrót{{!}}Kategoria{{!}}{{((}}ciąg{{))}}{{))}}<!-- -->{{))}}{{((}}#if:{{(((}}typ{{!}}{{)))}}{{!}}<!--<!-- -->{{((}}#switch:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}<!-- -->{{!}}Studia{{=}}{{((}}#invoke:Skrót{{!}}Kategoria{{!}}Akademickie książki {{(((}}typ{{)))}}{{))}}<!-- -->{{))}}<!-- -->{{))}}<!-- -->}}<!-- <!-- -->}}<!-- -->}}<!-- -->{{#if:{{{korzeń|}}}|<!-- -->{{#invoke:Skrót|Kategoria|{{{korzeń}}}|*}}<!-- -->}}<!-- -->{{#if:{{{główna|}}}|<!-- -->{{#invoke:Skrót|Kategoria|{{{główna}}}|sortuj spacją=tak}}<!-- -->}}<!-- -->{{#if:{{{rodzaj|}}}|<!-- -->{{#invoke:Ramka|PrzetwarzajIterującCiąg |ciąg={{{rodzaj}}} | 1= {{((}}#if:{{((}}ciąg{{))}}<!-- -->{{!}}{{((}}#invoke:Skrót{{!}}Kategoria{{!}}{{((}}ciąg{{))}}{{))}}<!-- -->{{))}}<!-- -->}}<!-- -->}}<!-- -->{{#if:{{#invoke:Ramka|Powtarzaj|start=2|{{((}}Dopasuj{{!}}ciąg{{=}}{{(((}}{{((}}_{{))}}{{)))}}{{!}}wzór{{=}}^%s*([Kk]siążka)%s*:%s*.+${{))}}}} | |{{#ifexist:{{Ns:Category}}:Książka:{{#invoke:Pudełko|Pełna nazwa jednostki 2}}|{{#invoke:Skrót|Kategoria|Książka:{{#invoke:Pudełko|Pełna nazwa jednostki 2}}|sortuj spacją={{#if:{{{książka|}}}||tak}}}}}} }} {{#invoke:Ramka|Powtarzaj|start=2|<!-- -->{{((}}#if:{{(((}}{{((}}_{{))}}{{!}}{{)))}}{{!}}<!-- -->{{((}}#ifeq:{{((}}ucfirst:{{((}}Dopasuj{{!}}ciąg{{=}}{{(((}}{{((}}_{{))}}{{)))}}{{!}}wzór{{=}}^%s*([Kk]siążka)%s*:%s*{{))}}{{))}}{{!}}Książka<!-- -->{{!}}<!-- -->{{((}}#invoke:Skrót{{!}}Kategoria{{!}}{{(((}}{{((}}_{{))}}{{)))}}{{!}}sortuj spacją{{=}}<!-- -->{{((}}#if:{{(((}}książka{{!}}{{)))}}{{!}}{{!}}tak{{))}}<!-- -->{{))}}<!-- -->{{!}}<!-- -->{{((}}#invoke:Skrót{{!}}Kategoria{{!}}{{(((}}{{((}}_{{))}}{{)))}}{{))}}<!-- -->{{))}}<!-- -->{{((}}#if:{{(((}}język{{!}}{{)))}}{{!}} {{((}}#ifeq:{{((}}ucfirst:{{(((}}{{((}}_{{))}}{{)))}}{{))}}{{!}}Języki{{!}}<!-- -->{{((}}#invoke:Skrót{{!}}Kategoria{{!}}{{(((}}{{((}}_{{))}}{{)))}} {{(((}}język{{)))}}{{))}}<!-- -->{{))}}<!-- -->{{))}}<!-- -->{{))}}<!-- -->}}<!-- -->}}<!-- -->{{#if:{{Dopasuj|ciąg={{{1}}}|wzór=^%s*(%+).*$}} |{{#invoke:Ramka|Powtarzaj|start=2|<!-- -->{{((}}#if:{{(((}}{{((}}_{{))}}{{!}}{{)))}}{{!}}<!-- -->{{((}}#ifeq:{{((}}ucfirst:{{((}}Dopasuj{{!}}ciąg{{=}}{{(((}}{{((}}_{{))}}{{)))}}{{!}}wzór{{=}}^%s*([Kk]siążka)%s*:%s*{{))}}{{))}}{{!}}Książka{{!}}{{!}}<!-- -->{{((}}#invoke:Skrót{{!}}Kategoria{{!}}Polecane książki/{{((}}ucfirst:{{(((}}{{((}}_{{))}}{{)))}}{{))}}{{))}}<!-- -->{{))}}<!-- -->{{((}}#if:{{(((}}język{{!}}{{)))}}{{!}} {{((}}#ifeq:{{((}}ucfirst:{{(((}}{{((}}_{{))}}{{)))}}{{))}}{{!}}Języki{{!}} {{((}}#invoke:Skrót{{!}}Kategoria{{!}}Polecane książki/{{((}}ucfirst:{{(((}}{{((}}_{{))}}{{)))}} {{(((}}język{{)))}}{{))}}{{))}} {{))}}<!-- -->{{))}}<!-- -->{{))}}<!-- -->}}<!-- -->{{#if:{{Dopasuj|ciąg={{#invoke:Pudełko|Nazwa jednostki 2}}|wzór=^([^/]+)$}}|<!-- -->{{#invoke:Skrót|Kategoria|Polecane książki}}<!-- -->{{#invoke:Skrót|Kategoria|Polecane książki/Spis alfabetyczny/{{Dopasuj|ciąg={{#invoke:Pudełko|Nazwa jednostki 2}}|wzór=^(.).*$}}}}<!-- -->{{#if:{{{poziom|}}}|<!-- -->{{#invoke:Ramka|PrzetwarzajIterującCiąg |ciąg={{{poziom}}} | 1= {{((}}#if:{{((}}ciąg{{))}}<!-- -->{{!}}{{((}}#invoke:Skrót{{!}}Kategoria{{!}}Polecane książki/{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}{{))}}<!-- -->{{))}}{{((}}#if:{{(((}}typ{{!}}{{)))}}{{!}}<!-- -->{{((}}#switch:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}<!-- -->{{!}}Studia{{=}}{{((}}#invoke:Skrót{{!}}Kategoria{{!}}Polecane książki/Akademickie książki {{(((}}typ{{)))}}{{))}}<!-- -->{{))}}<!-- -->{{))}}<!-- -->}}<!-- <!-- -->}}<!-- -->}}<!-- -->}} <!-- -->}}<!-- -->|jednostka użytkownika=<!-- -->{{#invoke:Ramka|Szablon|parametry funkcji modułu pudełek=tak|Nazwa=Status/silnik|ukończona={{Zastąp|ciąg={{{1|}}}|wzór=^%s*[%-%+]?%s*0*(%d+)%%?%s*$|zamień=%1}}|polecana=|typ=|nie kategorie=tak|id={{{id|}}}}}<!-- -->{{#invoke:Skrót|Kategoria|Wszystkie książki użytkowników}}<!-- -->|jednostka brudnopisu projektu=<!-- -->{{#invoke:Ramka|Szablon|parametry funkcji modułu pudełek=tak|Nazwa=Status/silnik|ukończona={{Zastąp|ciąg={{{1|}}}|wzór=^%s*[%-%+]?%s*0*(%d+)%%?%s*$|zamień=%1}}|polecana=|typ=|nie kategorie=tak|id={{{id|}}}}}<!-- -->{{#invoke:Skrót|Kategoria|Wszystkie książki w brudnopisie projektu}}<!-- -->|#default={{Błąd|Aby kompletność statusu działała, musisz wstawić szablon do strony głównej podręcznika.|tag=span}}<!-- -->{{#invoke:Skrót|Kategoria|Szablon status wywołano na innej stronie, niż dla której go przystosowano}}<!-- -->}}<!-- --></includeonly><noinclude>{{Dokumentacja}}</noinclude> djl0qd0yr9etnsky53wjx1ke03a88s5 Szablon:Ekspresowe kasowanie/opis 10 33227 541040 540945 2026-04-27T18:46:26Z Persino 2851 541040 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Spis treści}} {{wysokie ryzyko|meta}} {{Skrót szablonu|Ek|Delete|Screenshot}} <!-- DODAWAJ KATEGORIE I INTERWIKI NA DOLE STRONY --> Szablon: '''{{s|ek}}''', czyli: '''{{s|Ekspresowe kasowanie}}''', i jego dalsze przekierowania: '''{{s|delete}}''' i '''{{s|screenshot}}''', to jest jeden z najstarszych na polskojęzycznej Wikibooks, wstawia strony do wykazu: [[:Kategoria:Ekspresowe kasowanie]]. == Użycie == Szablon należy wstawić na początku strony (bez usuwania jej treści), która według wstawiającego nadaje się do natychmiastowego skasowania. Posiada jeden parametr pozycyjny nr 1 (faktycznie jest to parametr z nazwą "1") oraz dwa parametry kluczowe (nazwane) – ''powód'' i ''bez kategorii''. '''Uwaga''': nie nadużywaj tego szablonu. Jeśli skasowanie danego artykułu mogłoby być dyskusyjne, rozważ, czy nie lepiej użyć szablonu {{s|DNU}}. Szablon korzysta z {{S|Admin usuń}}, który pokazuje „kubełek” umożliwiający szybkie usunięcie strony lub pliku wraz z zdefiniowanym wcześniej opisem usunięcia. Wygląd i treść szablonu zmienia się w zależności od [[w:Pomoc:Przestrzeń nazw|przestrzeni nazw]], w której został użyty. == Opis parametrów == Przeznaczenie i podawanie wartości parametrów jest opisane poniżej. Warto przypomnieć, że w podawanych wartościach może wystąpić znak równości (symbol „=”), ale wtedy wartość ta '''musi''' być podana dla parametru ''powód'' lub dla parametru ''1'', ale w stylu parametru nazwanego, czyli tak, jak w [[#Przykłady użycia|przykładzie nr 3]]. ; Parametr nr 1 (pozycyjny) Jest on używany do wpisania uzasadnienia dla żądania ekspresowego skasowania strony. Podaje się go po wpisaniu [[w:Kreska pionowa|kreski pionowej]] (symbolu „|”), jak w [[#Przykłady użycia|przykładzie nr 2]]. Prawidłowe jest też jego użycie jak parametru nazwanego – [[#Przykłady użycia|przykład nr 3]]. ; Parametr ''powód'' (kluczowy) Jego przeznaczenie jest identyczne jak parametru pozycyjnego nr 1 – został wprowadzony jako bardziej oczywisty niż parametr nienazwany ''1'', natomiast parametr ''1'' zachowano dla wstecznej zgodności. Podajemy go jak w [[#Przykłady użycia|przykładzie nr 4]]. Ze względu na konstrukcję kodu szablonu można podać w jego wywołaniu wartości dla parametru ''powód'' i ''1'', ale wyświetlona zostanie tylko wartość dla parametru ''1''. ; Parametr ''dokumentacja'' (kluczowy, techniczny) Parametr ten jest używany tylko w specjalnych przypadkach, gdy szablon występuje na stronach pomocowych w wykazach szablonów, jak np. [[Wikibooks:Szablony/Do usunięcia]] – wtedy jego użycie pozwala uniknąć automatycznego wpisania takiej strony do kategorii stron do ekspresowego usunięcia. === Konkretne uzasadnienia === Szablon zawiera wbudowane uzasadnienia żądania skasowania, oparte na najczęstszych powodach usunięcia artykułów. Aby z nich skorzystać, należy wpisać w pole <tt>powód</tt> (lub jako parametr 1) któryś z poniższych skrótów: {{info|'''Wszystkie dostępne skróty:'''<br /> <tt>test, eksperyment, eks, substub, ency, hoax, or, OR, reklama, advert, ad, bezsens, bzdety, bełkot, bzdury, głupoty, wulgaryzmy, wulg, ataki osobiste, osobiste, wandalizm, wandal, dane osobowe, zniesławienie, libel, administracyjne, techniczne, technikalia, tech, autotranslator, translator, tłumacz, redir, przekierowanie, redirect, wygłupy, wygłup, dowcip, żart, npa, NPA, plagiat, copypaste, kopiuj-wklej, moje, wstawiony, nieaktualne, infoboks, infobox, link, plik, brudnopis.</tt>}} : ''Jeżeli podano więcej niż dwa parametry, to można ich używać zamiennie'' * <tt>'''test, eksperyment, eks'''</tt> – wstawia link do [[Wikibooks:Witamy nowicjuszy|pierwsze kroki]] i jako powód usunięcia ustawia {{OpakujKategorieZeSortowaniem|{{ek|test}}}} * <tt>'''substub'''</tt> – wstawia link do [[w:Wikipedia:Zalążek artykułu#Subzalążki|Wikipedia:Zalążek artykułu#Subzalążki]] i jako powód usunięcia ustawia {{OpakujKategorieZeSortowaniem|{{ek|substub}}}} * <tt>'''ency'''</tt> – wstawia link do [[w:Wikipedia:Encyklopedyczność|Wikipedia:Encyklopedyczność]] i jako powód usunięcia ustawia "treść [[w:WP:ENCY|encyklopedyczna]], patrz: [[Wikibooks:Witamy nowicjuszy|pierwsze kroki]]" {{OpakujKategorieZeSortowaniem|{{ek|ency}}}} * <tt>'''hoax'''</tt> – wstawia link do [[w:Wikipedia:Weryfikowalność|Wikipedia:Weryfikowalność]] i jako powód usunięcia ustawia "prawdopodobna mistyfikacja, patrz: [[w:WP:Weryfikowalność|weryfikowalność]]" {{OpakujKategorieZeSortowaniem|{{ek|hoax}}}} * <tt>'''or, OR'''</tt> – wstawia link do [[w:Wikipedia:Nie przedstawiamy twórczości własnej|Wikipedia:Nie przedstawiamy twórczości własnej]] i jako powód usunięcia ustawia "prawdopodobna twórczość własna, patrz: [[w:WP:Nie przedstawiamy twórczości własnej|nie przedstawiamy twórczości własnej]]" {{OpakujKategorieZeSortowaniem|{{ek|or}}}} * <tt>'''reklama, advert, ad'''</tt> – wstawia link do [[Wikibooks:Czym jest Wikibooks]] i jako powód usunięcia ustawia "skrajna forma reklamy, patrz: [[Wikibooks:Czym jest Wikibooks#Czym Wikibooks nie jest|czym Wikibooks nie jest]]" {{OpakujKategorieZeSortowaniem|{{ek|ad}}}} * <tt>'''bezsens, bzdety, bełkot, bzdury, głupoty'''</tt> – wstawia link do [[w:Wikipedia:Głupie dowcipy i czysty bezsens|Wikipedia:Głupie dowcipy i czysty bezsens]] i jako powód usunięcia ustawia "treść niezrozumiała, patrz: [[w:Wikipedia:Głupie dowcipy i czysty bezsens|czysty bezsens]]" {{OpakujKategorieZeSortowaniem|{{ek|bełkot}}}} * <tt>'''wulgaryzmy, wulg, ataki osobiste, osobiste, wandalizm, wandal'''</tt> – wstawia link do [[Wikibooks:Wikietykieta]] i jako powód usunięcia ustawia "[[WB:Wandalizm|wandalizm]] i/lub ataki osobiste, patrz: [[WB:Wikietykieta|wikietykieta]]" {{OpakujKategorieZeSortowaniem|{{ek|wulg}}}} * <tt>'''dane osobowe'''</tt> – jako powód usunięcia ustawia "upublicznienie danych osobowych" {{OpakujKategorieZeSortowaniem|{{ek|dane osobowe}}}} * <tt>'''zniesławienie, libel'''</tt> – jako powód usunięcia ustawia "zniesławienie" {{OpakujKategorieZeSortowaniem|{{ek|libel}}}} * <tt>'''administracyjne, techniczne, technikalia, tech'''</tt> – jako powód usunięcia ustawia "pozostałości po wykonywaniu operacji administracyjnych" {{OpakujKategorieZeSortowaniem|{{ek|techniczne}}}} * <tt>'''autotranslator, translator, tłumacz'''</tt> – jako powód usunięcia ustawia "tekst przetłumaczony z translatora" {{OpakujKategorieZeSortowaniem|{{ek|tłumacz}}}} * <tt>'''redir, przekierowanie, redirect'''</tt> – jako powód usunięcia ustawia "błędne lub niepotrzebne przekierowanie" {{OpakujKategorieZeSortowaniem|{{ek|redir}}}} * <tt>'''wygłupy, wygłup, dowcip, żart'''</tt> – wstawia link do [[Wikibooks:Czym jest Wikibooks#Czym Wikibooks nie jest]] i jako powód usunięcia ustawia "wygłupy" {{OpakujKategorieZeSortowaniem|{{ek|wygłupy}}}} * <tt>'''npa, NPA, plagiat, copypaste, kopiuj-wklej'''</tt> – wstawia link do [[Wikibooks:Prawa autorskie]] i jako powód usunięcia ustawia "naruszenie praw autorskich, patrz: [[WB:Prawa autorskie|prawa autorskie]]" {{OpakujKategorieZeSortowaniem|{{ek|npa}}}} * <tt>'''moje'''</tt> – jako powód usunięcia ustawia "na prośbę autora" {{OpakujKategorieZeSortowaniem|{{ek|moje}}}} * <tt>'''wstawiony, nieaktualne'''</tt> – jako powód usunięcia ustawia "strona zawierała nieaktualny komunikat o problemie" {{OpakujKategorieZeSortowaniem|{{ek|nieaktualne}}}} * <tt>'''infobox, infoboks'''</tt> – to samo, co <tt>wstawiony</tt>, ale jako powód usunięcia ustawia "nieaktualna informacja o braku infoboksu" * <tt>'''link'''</tt> – to samo, co <tt>wstawiony</tt>, ale jako powód usunięcia ustawia "nieaktualna informacja o martwym linku zewnętrznym" * <tt>'''plik'''</tt> – jako powód usunięcia ustawia "lokalny opis pliku, który znajduje się w Wikimedia Commons" {{OpakujKategorieZeSortowaniem|{{ek|plik}}}} * <tt>'''brudnopis'''</tt> – jako powód usunięcia ustawia "niepotrzeby brudnopis" {{OpakujKategorieZeSortowaniem|{{ek|brudnopis}}}} == Przykłady użycia == '''Przykład nr 1''' – wstawienie tylko szablonu, co nie jest zalecane, gdyż należy wskazywać powód: : <code><nowiki>{{ek}}</nowiki></code> '''Przykład nr 2''' – podanie uzasadnienia w parametrze pozycyjnym w sposób nienazwany: : <code><nowiki>{{ek|Ta strona nie spełnia wymogów podręcznikowości}}</nowiki></code> '''Przykład nr 3''' – podanie uzasadnienia w parametrze pozycyjnym w sposób nazwany: : <code><nowiki>{{ek|1=Naruszenie PA według http://pewna.witryna.pl/?a=bzz}}</nowiki></code> '''Przykład nr 4''' – podanie uzasadnienia w parametrze kluczowym z podaniem autora wstawienia szablonu na daną stronę za pomocą czterech tyld: : <code><nowiki>{{ek|powód=Ta strona narusza PA – wpisał to ~~~~}}</nowiki></code> == Użycie szablonu w innych szablonach == Ze względów technicznych, w innych szablonach przedmiotowy szablon wstawiamy osadzony pomiędzy znacznikami <tt>noinclude</tt> w postaci: : <code><nowiki><noinclude>{{ek|powód=uzasadnienie}}</noinclude></nowiki></code> == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "aliases": [ "wyjaśnienie" ], "label": "wyjaśnienie", "description": "Wyjaśnienie własnymi słowami dlaczego strona ma być skasowana", "example": "Ta strona nie spełnia wymogów nieencyklopedyczności.", "type": "content", "deprecated": "Zamiast tego pola użyj parametru 'powód'." }, "powód": { "aliases": [ "uzasadnienie" ], "label": "powód", "description": "Wyjaśnienie dlaczego strona ma zostać usunięta", "example": "Ta strona narusza PA – wpisał to ~~~~", "type": "content", "required": true }, "bez kategorii": { "label": "bez kategorii", "description": "Parametr używany tylko na stronach pomocowych, np.: w wykazach szablonów, jak np. Wikibooks:Szablony/Do usunięcia. Nie umieszcza stronę w kategorii: Ekspresowe kasowanie.", "type": "content" } }, "description": "Szablon ek służy do wysłania prośby do administratorów, aby skasowali daną stronę. Konieczne jest podanie uzasadnienia prośby. Szablon wstawia kategorię [[:Kategoria:Ekspresowe kasowanie]], dzięki temu strony" } </templatedata> == Zobacz też == Zobacz też dokumentację szablonów: * {{s|DNU}} - używany, gdy trwa dyskusja nad usunięciem lub naprawieniem strony, albo w sytuacji, gdy zakończone dyskusją z ustaleniem, co należy dalej zrobić, * {{s|SdU}} i {{s|DoSkasowania}} - używany, gdy trwa trwa dyskusja nad usunięciem lub naprawieniem strony podobnie jak {{s|DNU}}, * {{s|SdUwynik}} - używany w sytuacji, gdy ustalono, co dalej trzeba zrobić ze stroną, podobnie jak {{s|DNU}}, * {{s|Kpp}} i {{s|Kasowanie po przeniesieniu}} - powiadamia autora podręcznika przed jakim czasem może skopiować zawartość przed jego skasowaniem, * {{s|Ek2}} - używany do zgłoszenia strony, ale nie podręcznika, do usunięcia przez {{lr|Administratorzy|administratora Wikibooks}}, * {{s|NPA}} i {{s|NPA całość}} - używane do zgłaszanie naruszenia praw autorskich (NPA) przez artykuł i podręcznik w przestrzeni nazw (główna) i Wikijunior lub plik w przestrzeni nazw Plik, kolejno wstawiane ręcznie lub przez bota, * {{s|Zgłoś błąd}} i {{s|ZB}} - używane do zgłaszania błędów. * {{lpr|Zasady ekspresowego kasowania|Wikipedia:Zasady ekspresowego kasowania}} * {{lpr|Narzędzia/QuickEK|Wikipedia:Narzędzia/QuickEK}} {{BrClear}} <includeonly> {{Kategorie | Szablony porządkowe | Szablony dodające kategorie | Usuwanie stron - szablony }} </includeonly> reh0uk90niaz4g92eel0k6hfwyzqwhq Szablon:Ekspresowe kasowanie 2 10 44965 541039 540939 2026-04-27T18:45:57Z Persino 2851 541039 wikitext text/x-wiki <includeonly><!-- -->{{Mbox | grafika = {{Plik|plik=User-trash-full.png|rozmiar=35px|opis=Ekspresowe kasowanie}} | typ = poważny | tekst = '''Jeden z użytkowników Wikibooks oznaczył t{{#if:{{{nazwij stroną|}}}|ę stronę jako kwalifikującą się|{{#switch:{{Np|{{#invoke:Pudełko|Nazwa przestrzeni nazw}}|kanoniczna=tak|wyświetlana=tak}} | File = en plik jako kwalifikujący się | Category = ę kategorię jako kwalifikującą się | Template = ę szablon jako kwalifikującą się | Module = ą stronę modułu, jako kwalifikującą się | Wikibooks = ą stronę projektu, jako kwalifikującą się | Help = ą stronę pomocy, jako kwalifikującą się | User = ą stronę użytkownika, jako kwalifikującą się | Wikijunior = ę artykuł dla dzieci, jako kwalifikującą się | (main) = ę artykuł jako kwalifikującą się | #default = ę stronę jako kwalifikującą się}}}}<!-- -->do {{LinkProjekt|Poczekalnia|natychmiastowego skasowania}}'''.{{Br}}{{Small|W najbliższym czasie {{LinkProjekt|Administratorzy|administratorzy Wikibooks}} zweryfikują to zgłoszenie.}}<!-- -->{{#if: {{{1|}}} | :Użytkownik, który zasugerował usunięcie strony podał następujące uzasadnienie:{{Br}} "{{{1}}}" }}{{Br}}{{Small|Jeśli się nie zgadzasz z propozycją usunięcia, napisz o tym na stronie {{LinkProjekt|Poczekalnia}}.}} }}{{#if:{{{bez kategorii|}}}||{{#invoke:Skrót|Kategoria|Ekspresowe kasowanie}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude> mx3s2ybwi1u2ig0tfat17hkpog2c7p9 Szablon:Ekspresowe kasowanie 2/opis 10 44966 541038 540943 2026-04-27T18:45:37Z Persino 2851 541038 wikitext text/x-wiki {{Podstrona dokumentacji}} {{Skrót szablonu|Ek2}} <!-- DODAWAJ KATEGORIE NA DOLE STRONY --> == Użycie == Szablon służy do oznaczania stron przeznaczonych do usunięcia. Szablon umieszcza stronę w kategorii: {{lk|Ekspresowe kasowanie}}. == Opis parametrów == Szablon przyjmuje parametry opcjonalne: * {{Code|1}} = uzasadniesie dlaczego strona musi zostać usunięta. * {{Code|nazwij stroną}} = stronę do usunięcia nazywa po prostu stroną. * {{Code|nazwa przestrzeni nazw}} = aktywna, gdy parametr {{Code|nazwij stroną}} jest pusty. == Przykład == ; Pierwszy przykład * {{s|ek2}} {{OpakujKategorieZeSortowaniem|{{ek2}}}} ---- ; Drugi przykład * {{s|ek2|To jest uzasadnienie.}} {{OpakujKategorieZeSortowaniem|{{ek2|To jest uzasadnienie.}}}} == Błędy == Błędy należy zgłaszać na stronie {{kwestie techniczne}}. == Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) == <templatedata> { "params": { "1": { "description": "Uzasadnienie", "type": "string", "suggested": true }, "nazwij stroną": { "description": "Strona do usunięcia nazywana jest po prostu stroną.", "type": "string", "default": "Wartość pusta." }, "nazwa przestrzeni nazw": { "description": "Nazwa przestrzeni nazw, do której należy strona.", "type": "string" } } } </templatedata> == Zobacz też == Zobacz też dokumentację szablonów: * {{s|DNU}} - używany, gdy trwa dyskusja nad usunięciem lub naprawieniem strony, albo w sytuacji, gdy zakończone dyskusją z ustaleniem, co należy dalej zrobić, * {{s|SdU}} i {{s|DoSkasowania}} - używany, gdy trwa trwa dyskusja nad usunięciem lub naprawieniem strony podobnie jak {{s|DNU}}, * {{s|SdUwynik}} - używany w sytuacji, gdy ustalono, co dalej trzeba zrobić ze stroną, podobnie jak {{s|DNU}}, * {{s|Kpp}} i {{s|Kasowanie po przeniesieniu}} - powiadamia autora podręcznika przed jakim czasem może skopiować zawartość przed jego skasowaniem, * {{s|Ek}} i {{s|Delete}} - używany do zgłoszenia strony, ale nie podręcznika, do usunięcia przez {{lr|Administratorzy|administratora Wikibooks}}, * {{s|NPA}} i {{s|NPA całość}} - używane do zgłaszanie naruszenia praw autorskich (NPA) przez artykuł i podręcznik w przestrzeni nazw (główna) i Wikijunior lub plik w przestrzeni nazw Plik, kolejno wstawiane ręcznie lub przez bota, * {{s|Zgłoś błąd}} i {{s|ZB}} - używane do zgłaszania błędów. {{BrClear}} <includeonly><!-- ++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII --> {{Kategorie | Szablony porządkowe | Szablony dodające kategorie | Usuwanie stron - szablony }} </includeonly> 468j87j1twa31jlrgdg3lrj1auuh4cl Moduł:Specjalne 828 58949 541185 539460 2026-04-28T11:13:39Z Persino 2851 541185 Scribunto text/plain local p={}; local function GranicznieSzereg(wzor,czy_granicznie) return (czy_granicznie and "^" or "")..wzor..(czy_granicznie and "$" or ""); end; function p.ZnakiSpecjalneAnulowaniaIchZnaczeniaTagowegoMediaWiki(szablon) local specjalne_modul=mw.loadData("Module:Specjalne/dane"); local tab_specjalne_znaki=specjalne_modul.szablony_anulowania_znaczeniowego_tagowego_mediawiki; szablon=mw.ustring.gsub(szablon,"[<>]",tab_specjalne_znaki); return szablon; end; p["UsuńŚciśleOkreśloneKategorie"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr("tekst") or PobierzParametr(1); local kategoria=PobierzParametr("kategoria") or PobierzParametr(2) if(kategoria)then kategoria=mw.ustring.gsub(kategoria,"^[%s_]*",""); kategoria=mw.ustring.gsub(kategoria,"[%s_]*$",""); kategoria=mw.ustring.gsub(kategoria,"[%s_]+","[%%s_]+"); else kategoria="([^%[%]|]*)"; end; local czy_granicznie=PobierzParametr("granicznie") or PobierzParametr(3); czy_granicznie=parametry_modul.CzyTak(czy_granicznie); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local category=nazwy_np_modul.Category; local wzorcategory=require("Module:Techniczne")["WzórDanejPrzestrzeniNazw"](category); tekst=mw.ustring.gsub(tekst,GranicznieSzereg("%[%[[%s_]*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy][%s_]*:[%s_]*"..kategoria.."[%s_]*%]%]",czy_granicznie),""); tekst=mw.ustring.gsub(tekst,GranicznieSzereg("%[%[[%s_]*"..wzorcategory.."[%s_]*:[%s_]*"..kategoria.."[%s_]*%]%]",czy_granicznie),""); tekst=mw.ustring.gsub(tekst,GranicznieSzereg("%[%[[%s_]*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy][%s_]*:[%s_]*"..kategoria.."[%s_]*|[^%[%]]*%]%]",czy_granicznie),""); tekst=mw.ustring.gsub(tekst,GranicznieSzereg("%[%[[%s_]*"..wzorcategory.."[%s_]*:[%s_]*"..kategoria.."[%s_]*|[^%[%]]*%s*%]%]",czy_granicznie),""); return tekst; end; p["UsuńKategorie"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1); local czy_granicznie=PobierzParametr("granicznie") or PobierzParametr(2); czy_granicznie=parametry_modul.CzyTak(czy_granicznie); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local category=nazwy_np_modul.Category; local wzorcategory=require("Module:Techniczne")["WzórDanejPrzestrzeniNazw"](category); argument_pierwszy=mw.ustring.gsub(argument_pierwszy,GranicznieSzereg("%[%[%s*"..wzorcategory.."%s*:[^%[%]]*%]%]",czy_granicznie),""); argument_pierwszy=mw.ustring.gsub(argument_pierwszy,GranicznieSzereg("%[%[%s*[CC][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%[%]]*%]%]",czy_granicznie),""); return argument_pierwszy; end; p["UsuńZnaczniki"]=function(frame,jakie,funkcja1,funkcja2) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_ze_znacznikiem=PobierzParametr("tekst") or PobierzParametr(1); argument_ze_znacznikiem=funkcja1 and funkcja1(argument_ze_znacznikiem) or argument_ze_znacznikiem; if(not jakie)then argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,"(</?%s*[^<>]+/?>)",""); else argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,"(</?%s*"..jakie.."%s+[^<>]*/?>)",""); argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,"(</?%s*"..jakie.."%s*/?>)",""); end; argument_ze_znacznikiem=funkcja2 and funkcja2(argument_ze_znacznikiem) or argument_ze_znacznikiem; return argument_ze_znacznikiem; end; p["UsuńKomentarze"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_ze_znacznikiem=PobierzParametr("tekst") or PobierzParametr(1); argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,"<!%-%-.-%-%->",""); return argument_ze_znacznikiem; end; p["UsuńSzablonyStylów"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_ze_znacznikiem=PobierzParametr("tekst") or PobierzParametr(1); local html_dane_modul=mw.loadData("Module:Html/dane"); local szablonowe_modul=require("Module:Szablonowe"); argument_ze_znacznikiem=mw.ustring.gsub(argument_ze_znacznikiem,szablonowe_modul.NormaWzoruKodowaniaTekstu("templatestyles","%w+"),""); return argument_ze_znacznikiem; end; p["UsuńWywołaniaPlików"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1); local czy_granicznie=PobierzParametr("granicznie") or PobierzParametr(2); czy_granicznie=parametry_modul.CzyTak(czy_granicznie); local wartosc=mw.ustring.gsub(argument_pierwszy,GranicznieSzereg("%[%[[%s_]*[Pp][Ll][Ii][Kk][%s_]*:[^%[%]]*%]%]",czy_granicznie),""); wartosc=mw.ustring.gsub(wartosc,GranicznieSzereg("%[%[[%s_]*[Ff][Ii][Ll][Ee][%s_]*:[^%[%]]*%]%]",czy_granicznie),""); wartosc=mw.ustring.gsub(wartosc,GranicznieSzereg("%[%[[%s_]*[Ii][Mm][Aa][Gg][Ee][%s_]*:[^%[%]]*%]%]",czy_granicznie),""); wartosc=mw.ustring.gsub(wartosc,GranicznieSzereg("%[%[[%s_]*[Gg][Rr][Aa][Ff][Ii][Kk][Aa][%s_]*:[^%[%]]*%]%]",czy_granicznie),""); return wartosc; end; p["UsuńInterwiki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1); local czy_granicznie=PobierzParametr("granicznie") or PobierzParametr(2); czy_granicznie=parametry_modul.CzyTak(czy_granicznie); local pudelko_modul=require("Module:Pudełko"); ---- local function usun_interwiki(interwiki) local wartosc=mw.ustring.match(interwiki,"%[%[[%s_]*([^:]*[^:%s_])[%s_]*:[^%[%]]*%]%]"); if(wartosc)then wartosc=mw.getContentLanguage():lc(wartosc); local czy_kod_jezyka_istnieje=mw.language.isKnownLanguageTag(wartosc); if(czy_kod_jezyka_istnieje)then if(wartosc==pudelko_modul["Kod języka tego projektu"](frame))then return interwiki; else return ""; end; end; end; return interwiki; end; --- return mw.ustring.gsub(argument_pierwszy,GranicznieSzereg("(%[%[[^%[%]]*%]%])",czy_granicznie),function(s)return usun_interwiki(s);end); end; p["UsuńZnakiSpecjalne"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1); local wartosc=argument_pierwszy; repeat local ile; wartosc,ile=mw.ustring.gsub(wartosc,"'''([^'].-)'''","%1"); until (ile==0); repeat local ile; wartosc,ile=mw.ustring.gsub(wartosc,"''([^'].-)''","%1"); until (ile==0); repeat local ile1;local ile2; wartosc,ile1=mw.ustring.gsub(wartosc,"'''",""); wartosc,ile2=mw.ustring.gsub(wartosc,"''",""); until ((ile1==0)and(ile2==0)); return wartosc; end; p["UsuńZbędneBiałeZnaki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1); argument_pierwszy=mw.ustring.gsub(argument_pierwszy,"^%s*",""); argument_pierwszy=mw.ustring.gsub(argument_pierwszy,"%s*$",""); argument_pierwszy=mw.ustring.gsub(argument_pierwszy,"%s+"," "); return argument_pierwszy; end; p["ZamieńLinkiWewnętrzneNaTekst"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1); local czy_granicznie=PobierzParametr("granicznie") or PobierzParametr(2); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); local nazwy_modul=require("Module:Nazwy"); local pudelko_modul=require("Module:Pudełko"); local html_modul=require("Module:Html"); local function LinkiZamienianieNaZawartoscLubNazwe(link,dwukropek,zawartosc,nazwa) local prefix=mw.ustring.match(zawartosc,"^[%s_]*([^:]*[^:%s_])[%s_]*:"); if(prefix)then local czy_kod_jezyka_istnieje=mw.language.isKnownLanguageTag(prefix); if(czy_kod_jezyka_istnieje)then if(#dwukropek>0)then return nazwa or html_modul.DecodeHtml(zawartosc,true); elseif(prefix==pudelko_modul["Kod języka tego projektu"](frame))then return nazwa or html_modul.DecodeHtml(zawartosc,true); else return link; end; else local nazwa_przestrzeni=nazwy_modul.Np{nazwa=prefix,istnieje="tak",["wynik błędu nietekstowy"]="tak"}; if(not nazwa_przestrzeni)then return nazwa or zawartosc;end; if((nazwa_przestrzeni==nazwy_np_modul.Category)or(nazwa_przestrzeni==nazwy_np_modul.File))then if(#dwukropek>0)then return nazwa or html_modul.DecodeHtml(zawartosc,true); else return link; end; else return nazwa or html_modul.DecodeHtml(zawartosc,true); end; end; else return nazwa or html_modul.DecodeHtml(zawartosc,true); end; end; ----- local wartosc=mw.ustring.gsub(argument_pierwszy,GranicznieSzereg("(%[%[(:?)/([^/{}|%[%]][^{}|%[%]]-)/+%]%])",czy_granicznie),LinkiZamienianieNaZawartoscLubNazwe); wartosc=mw.ustring.gsub(wartosc,GranicznieSzereg("(%[%[(:?)/([^/{}|%[%]][^{}|%[%]]-)/+|(..-)%]%])",czy_granicznie),LinkiZamienianieNaZawartoscLubNazwe); ----- wartosc=mw.ustring.gsub(wartosc,GranicznieSzereg("(%[%[(:?)([^{}|%[%]]+)%]%])",czy_granicznie),LinkiZamienianieNaZawartoscLubNazwe); wartosc=mw.ustring.gsub(wartosc,GranicznieSzereg("(%[%[(:?)([^{}|%[%]]+)|(..-)%]%])",czy_granicznie),LinkiZamienianieNaZawartoscLubNazwe); ---- return wartosc; end; p["ZamieńLinkiZewnętrzneNaTekst"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1); local czy_granicznie=PobierzParametr("granicznie") or PobierzParametr(2); local function SprawdzanieCzyLinkPozaProjektowyPoprawny(link) local strony_modul=require("Module:Strony"); local czy_link=strony_modul.SprawdzanieURL(link); if(czy_link)then return true; end; end; local wartosc=mw.ustring.gsub(argument_pierwszy,GranicznieSzereg("%[%s*([^%[%]%s]+)%s+([^%[%]]*)%]",czy_granicznie),function(a,b) local wynik=SprawdzanieCzyLinkPozaProjektowyPoprawny(a); if(wynik)then return b;end; end); ------ wartosc=mw.ustring.gsub(wartosc,GranicznieSzereg("%[%s*([^%[%]%s]-)%s*%]",czy_granicznie),function(a) local wynik=SprawdzanieCzyLinkPozaProjektowyPoprawny(a); if(wynik)then return a;end; end); return wartosc; end; p["CzyPlik"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1); return mw.ustring.match(argument_pierwszy,"^%[%[[%s_]*([Pp][Ll][Ii][Kk])[%s_]*:.*%]%]$") or mw.ustring.match(argument_pierwszy,"^%[%[[%s_]*([Ff][Ii][Ll][Ee])[%s_]*:.*%]%]$") or mw.ustring.match(argument_pierwszy,"^%[%[[%s_]*([Ii][Mm][Aa][Gg][Ee])[%s_]*:.*%]%]$") or mw.ustring.match(argument_pierwszy,"^%[%[[%s_]*([Gg][Rr][Aa][Ff][Ii][Kk][Aa])[%s_]*:.*%]%]$"); end; p["CzyInterwiki"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1); local pudelko_modul=require("Module:Pudełko"); ---- local function czy_interwiki(interwiki) local wartosc=mw.ustring.match(interwiki,"^%[%[[%s_]*([^:]*[^:%s_])[%s_]*:[^%[%]]*%]%]$"); if(wartosc)then wartosc=mw.getContentLanguage():lc(wartosc); local czy_kod_jezyka_istnieje=mw.language.isKnownLanguageTag(wartosc); if(czy_kod_jezyka_istnieje)then if(wartosc==pudelko_modul["Kod języka tego projektu"](frame))then return nil; else return "tak"; end; end; end; return nil; end; ---- return czy_interwiki(argument_pierwszy); end; p["CzyAdresLinkuWewnętrznego"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local dwukropek=PobierzParametr("dwukropek") or PobierzParametr(1); local adres=PobierzParametr("adres") or PobierzParametr("tekst") or PobierzParametr(2); local pudelko_modul=require("Module:Pudełko"); if(parametry_modul.CzyTak(dwukropek))then return "tak"; else if(not dwukropek)then local czy_dwukropek=mw.ustring.match(adres,"^[:%s_]*:"); if(czy_dwukropek)then return "tak"; end; end; local kod=mw.ustring.match(adres,"^[:%s_]*([^:%s][^:%s]-)[%s_]*:"); if(kod)then kod=mw.getContentLanguage():lc(kod); if(mw.language.isKnownLanguageTag(kod))then local pudelko_modul=require("Module:Pudełko"); if(kod==pudelko_modul["Kod języka tego projektu"]())then return "tak";else return nil;end; end; local wiki_interwiki_modul=mw.loadData("Module:Wiki/interwiki"); if(wiki_interwiki_modul.interwikimap[kod])then return "tak";end; local nazwy_modul=require("Module:Nazwy"); local przestrzen=nazwy_modul["NAZWAPRZESTRZENI"](adres); local nazwy_np_modul=mw.loadData("Module:Nazwy/Np"); if((przestrzen==nazwy_np_modul.File)or(przestrzen==nazwy_np_modul.Category))then return nil;end; end; return "tak"; end; return nil; end; p["CzyLinkWewnętrzny"]=function(szablon) local dwukropek,adres=mw.ustring.match(szablon,"^%[%[[%s_]*(:?)[%s_:]*([^%|%[%]]*)"); return ((p["CzyAdresLinkuWewnętrznego"]{[1]=dwukropek,[2]=adres,})and true or false); end; p["WydzielZwykłyTekst"]=function(frame,funkcja1,funkcja2) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local tekst=PobierzParametr("tekst") or PobierzParametr(1); local nieklasycznie=PobierzParametr("nieklasycznie") or PobierzParametr(2); nieklasycznie=parametry_modul.CzyTak(nieklasycznie); local preprocess=PobierzParametr("preprocess") or PobierzParametr(3); local preprocess=parametry_modul.CzyTak(preprocess); local kodowanie=PobierzParametr("kodowanie") or PobierzParametr(4); local kodowanie=parametry_modul.CzyTak(kodowanie); local naglowek=PobierzParametr("nagłówek") or PobierzParametr(5); local naglowek=parametry_modul.CzyTak(naglowek); local tablica_analizy_obiektow_strony_dany_modul; if(kodowanie)then tablica_analizy_obiektow_strony_dany_modul={}; elseif(nieklasycznie)then tablica_analizy_obiektow_strony_dany_modul=PobierzParametr("tablica kodowania") or PobierzParametr(5); end; local function DwaNawiasyLinkowe(tekst) tekst=p["UsuńKategorie"]{tekst,nieklasycznie,}; tekst=p["UsuńWywołaniaPlików"]{tekst,nieklasycznie,}; tekst=p["UsuńInterwiki"]{tekst,nieklasycznie,}; tekst=p["ZamieńLinkiWewnętrzneNaTekst"]{tekst,nieklasycznie,}; return tekst; end; local function JedenNawiasLinkowe(tekst) tekst=p["ZamieńLinkiZewnętrzneNaTekst"]{tekst,nieklasycznie,}; return tekst; end; local function Komentarze(tekst) tekst=p["UsuńKomentarze"](tekst); return tekst; end; local function SzablonyStylowe(tekst) tekst=p["UsuńSzablonyStylów"](tekst); return tekst; end; local function ZnakiSpecjalne(tekst) tekst=p["UsuńZnakiSpecjalne"](tekst); return tekst; end; local function Znaczniki(tekst,jakie,__FUNKCJA1,__FUNKCJA2) tekst=p["UsuńZnaczniki"](tekst,jakie,__FUNKCJA1,__FUNKCJA2); return tekst; end; local function PreProcessFrame(tekst) local frame=mw.getCurrentFrame(); frame=frame.getParent and frame:getParent() or frame; tekst=frame:preprocess(tekst); return tekst; end; if(not nieklasycznie)then if(preprocess)then tekst=p.ZnakiSpecjalneAnulowaniaIchZnaczeniaTagowegoMediaWiki(tekst); tekst=PreProcessFrame(tekst); end; tekst=Komentarze(tekst); tekst=JedenNawiasLinkowe(tekst); tekst=DwaNawiasyLinkowe(tekst); if(not naglowek)then tekst=SzablonyStylowe(tekst); tekst=ZnakiSpecjalne(tekst); tekst=Znaczniki(tekst); end; if(naglowek)then return tekst,Znaczniki,SzablonyStylowe,ZnakiSpecjalne; end; return tekst; end; local szablonowe_modul=require("Module:Szablonowe"); if(kodowanie)then tekst=Komentarze(tekst); tekst=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul); end; tekst=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(tekst,nil,tablica_analizy_obiektow_strony_dany_modul, function(szablon,obiekt,kod) if(obiekt=="SZABLON")then local wynik; if(funkcja1)then szablon,wynik=funkcja1(szablon,obiekt,kod); end; if(((not funkcja1) or (szablon))and ((not funkcja2) or funkcja2(szablon,obiekt,kod)))then szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) if(not funkcja1)then return nil;end; if(obiekt=="SZABLON")then local __szablon,__wynik=funkcja1(szablon,obiekt,kod); if(not __szablon)then return nil;end; return __szablon; end; end); szablon=p.ZnakiSpecjalneAnulowaniaIchZnaczeniaTagowegoMediaWiki(szablon); szablon=PreProcessFrame(szablon); szablon=Komentarze(szablon); szablon=szablonowe_modul:KodowanieSzablonowegoTekstuZObiektamiWikikodu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul, nil,nil, function() local numer_szablonu=szablonowe_modul:NumerSzablonuKodowaniaTekstu(nil,tablica_analizy_obiektow_strony_dany_modul); return numer_szablonu; end); szablon=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(szablon,nil,tablica_analizy_obiektow_strony_dany_modul,function(szablon,obiekt,kod) if(obiekt=="LINKW")then szablon=DwaNawiasyLinkowe(szablon) return szablon; elseif(obiekt=="LINKZ")then szablon=JedenNawiasLinkowe(szablon) return szablon; elseif(obiekt=="ATRYBUTY")then if(naglowek)then return nil,true; end; return szablon; elseif(obiekt=="ZNACZNIK")then if(naglowek)then return nil,true; end; szablon=Znaczniki(szablon); return szablon; elseif((obiekt=="NOWIKI")or(obiekt=="MATH")or(obiekt=="ŹRÓDŁO")or(obiekt=="GALERIA")or(obiekt=="MAPAOBRAZU")or(obiekt=="PUDEŁKOWEJŚCIA")or(obiekt=="QUIZ"))then if(naglowek)then return nil,true; end; szablon=Znaczniki(szablon); return szablon; end; return szablon; end); end; return szablon,wynik; else if(obiekt=="LINKW")then szablon=DwaNawiasyLinkowe(szablon); return szablon; elseif(obiekt=="LINKZ")then szablon=JedenNawiasLinkowe(szablon); return szablon; elseif(obiekt=="ATRYBUTY")then if(naglowek)then return nil,true; end; return szablon; elseif(obiekt=="ZNACZNIK")then if(naglowek)then return nil,true; end; szablon=Znaczniki(szablon); return szablon; elseif((obiekt=="NOWIKI")or(obiekt=="MATH")or(obiekt=="ŹRÓDŁO")or(obiekt=="GALERIA")or(obiekt=="MAPAOBRAZU")or(obiekt=="PUDEŁKOWEJŚCIA")or(obiekt=="QUIZ"))then if(naglowek)then return nil,true; end; szablon=Znaczniki(szablon); return szablon; end; end; return szablon; end); if(not naglowek)then tekst=SzablonyStylowe(tekst); tekst=ZnakiSpecjalne(tekst); end; if(naglowek)then return tekst,Znaczniki,SzablonyStylowe,ZnakiSpecjalne; else return tekst; end; end; p["WydzielLiczbę"] = function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr("tekst") or PobierzParametr(1); --- local wartosc=p["WydzielZwykłyTekst"](argument_pierwszy); ---- local ile; wartosc,ile=mw.ustring.gsub(wartosc,"^([^%d]-)([%+%-]?[%s_]*%d+[%d%s_]-)[%s_]*$","%2"); if(ile==0)then return nil;end; wartosc=mw.ustring.gsub(wartosc,"%s+",""); return tonumber(wartosc); end; p["PrzetwórzNagłówek"]=function(adres,czy_naglowek_linku,czy_nie_rozwin_adres) local Znaczniki,SzablonyStylowe,ZnakiSpecjalne; if(not czy_nie_rozwin_adres)then adres,Znaczniki,SzablonyStylowe,ZnakiSpecjalne=p["WydzielZwykłyTekst"]{tekst=adres,["nagłówek"]=true,preprocess=true,}; else adres,Znaczniki,SzablonyStylowe,ZnakiSpecjalne=p["WydzielZwykłyTekst"]{tekst=adres,["nagłówek"]=true,preprocess=false,}; end; local naglowek=nil; if(czy_naglowek_linku)then local tab_element={}; local szablonowe_potrzebne_modul=require("Module:Szablonowe/Potrzebne"); adres=szablonowe_potrzebne_modul.KodowanieAtrybutoweZnacznikowe(adres,tab_element); adres=Znaczniki(adres,"li"); adres=Znaczniki(adres,"ol"); adres=Znaczniki(adres,"ul"); naglowek=adres; adres=Znaczniki(adres); local szablonowe_modul=require("Module:Szablonowe"); adres=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(adres,nil,tab_element); naglowek=szablonowe_modul:KompletowanieSzablonoweZakodowanegoTekstu(naglowek,nil,tab_element); naglowek=mw.ustring.gsub(naglowek,"[%[%]]",function(s) return "&#"..tostring(mw.ustring.byte(s))..";";end); adres=SzablonyStylowe(adres); adres=ZnakiSpecjalne(adres); local html_modul=require("Module:Html"); adres=html_modul.DecodeKoduHTMLZnaku(adres); adres=html_modul.EncodeSpecjalneZnakiHtml(adres); local parametry_modul=require("Module:Parametry"); adres=parametry_modul["Odstępy"]{[1]=adres,[2]="tak",[3]="tak",}; end; return adres,naglowek; end; p["OdstępyZmiennychNumerowanychSzablonu"]=function(frame) local parametry_modul=require("Module:Parametry"); local PobierzParametr=parametry_modul.PobierzParametr(frame); local argument_pierwszy=PobierzParametr(1); local lewy=PobierzParametr("lewy"); local parametry_modul=require("Module:Parametry"); local czy_lewy=parametry_modul.CzyTak(lewy); if(czy_lewy)then return mw.ustring.match(argument_pierwszy,"^%s+") or ""; else return mw.ustring.match(argument_pierwszy,"%s+$") or ""; end; end; return p; 3typu2a27occ11qobhobodcx43pf54q Wikibooks:Mechanizm MediaWiki 4 60755 541087 540760 2026-04-27T20:52:57Z Persino 2851 /* Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} */ 541087 wikitext text/x-wiki <noinclude><!-- -->{{StandardowaStronaStart | nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Wstęp}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}} }}</noinclude>{{Spis treści}} Przedstawimy tutaj problemy z mechanizmem MediaWiki, poczynając od opisu szablonów i modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w zastosowaniach również do wikikodu, na polskim {{NAZWASERWISU|po=ie|wikipedia=tak|link=tak}}. == Szablony == Przedstawiamy tutaj w dwóch formach opis wszystkich szablonów, dostępnych na polskim {{NAZWASERWISU|po=ie|link=tak}}, w postaci listy. === Opis wizualny === * {{lr|Szablony}} - strona główna zbioru wszystkich szablonów, opisu ich, wizualnego i opisowego. ** {{lru|Szablony/Ogólne}}, {{lru|Szablony/Podręcznikowe}}, {{lru|Szablony/Książkowe}}, {{lru|Szablony/Tekst}}, {{lru|Szablony/Zawartość}}, {{lru|Szablony/Nagłówki}}, {{lru|Szablony/Przekierowania}}, {{lru|Szablony/Języki}}, {{lru|Szablony/Liczby}}, {{lru|Szablony/Kategorie}}, {{lru|Szablony/Opisy}}, {{lru|Szablony/Znaczniki}}, {{lru|Szablony/Szablony opływania}}, {{lru|Szablony/Stronicowe}}, {{lru|Szablony/Kontenerowe}}, {{lru|Szablony/Elastyczne}}, {{lr|Szablony/Infoboksy/Prolog|Infoboksy - Prolog}}, {{lr|Szablony/Infoboksy/Tom I|Infoboksy - Tom I}}, {{lr|Szablony/Infoboksy/Tom II|Infoboksy - Tom II}}, {{lr|Szablony/Infoboksy/Tom III|Infoboksy - Tom III}}, {{lr|Szablony/Infoboksy/Tom IV|Infoboksy - Tom IV}}, {{lr|Szablony/Infoboksy/Tom V|Infoboksy - Tom V}}, {{lr|Szablony/Infoboksy/Tom VI|Infoboksy - Tom VI}}, {{lr|Szablony/Infoboksy/Komponenty|Infoboksy - Komponenty}}, {{lr|Szablony/Infoboksy/Komponenty (organizmy żywe)|Infoboksy - Komponenty (organizmy żywe)}}, {{lru|Szablony/Porządkowe}}, {{lru|Szablony/Źródła artykułów}}, {{lru|Szablony/Linki}}, {{lru|Szablony/Linki inteligentne}}, {{lru|Szablony/Do usunięcia}}, {{lru|Szablony/Nawigacja}}, {{lru|Szablony/Media}}, {{lru|Szablony/Grafika}}, {{lru|Szablony/Licencjonowanie}}, {{lru|Szablony/Techniczne}}, {{lru|Szablony/Wikipedysta}}, {{lru|Szablony/Dyskusja Wikipedysty}}, {{lru|Szablony/MediaWiki}} i {{lru|Szablony/Systemowe}}. === Opis tekstowy === * {{lp|Spis treści}} - spis treści pomocy, nie tylko szablonów, czy modułów. ** {{lp|Spis treści/Szablony/Tom I|Szablony - Tom I}}, {{lp|Spis treści/Szablony/Tom II|Szablony - Tom II}}, {{lp|Spis treści/Szablony/Tom III|Szablony - Tom III}} i {{lp|Spis treści/Szablony/Tom IV|Szablony - Tom IV}}. == Moduły {{lpg|Lua}} w {{lpr|Lua|Scribunto}} == {{Osobny artykuł|{{Ns:Project}}:Moduły|obserwowane=Moduły}} * Moduły podstawowe ** {{m|Parametry}} - {{lru|Moduły/Parametry}} procedur na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ** {{m|Html}} - {{lru|Moduły/Html}} procedur na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL. ** {{m|Nazwy}} - {{lru|Moduły/Nazwy}} ({{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}}, {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}}, {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} i {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}}) procedur operujących na nazwach MediaWiki projektu. *** {{m|Nazwy/Np}} - {{lru|Moduły/Nazwy/Np}} zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie. ** {{m|Książkowe}} - {{lru|Moduły/Książkowe}} procedur na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich. ** {{m|Pudełko}} - {{lru|Moduły/Pudełko}} ({{lr|Moduły/Pudełko/Tom I|Pudełko - Tom I}}, {{lr|Moduły/Pudełko/Tom II|Pudełko - Tom II}}, {{lr|Moduły/Pudełko/Tom III|Pudełko - Tom III}}, {{lr|Moduły/Pudełko/Tom IV|Pudełko - Tom IV}} i {{lr|Moduły/Pudełko/Tom V|Pudełko - Tom V}}) procedur opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy. *** {{m|Pudełko/Pomocne}} - {{lru|Moduły/Pudełko/Pomocne}} procedur potrzebnych do implementacji funkcji modułu {{m|Pudełko}} dotyczące różnych nazw. *** {{m|Pudełko/Potrzebne}} - {{lru|Moduły/Pudełko/Potrzebne}} procedur potrzebnych do implementacji funkcji modułu {{m|Pudełko}} dotyczące {{m|Pudełko|Ogólne pudełko}}. *** {{m|Pudełko/ParametryCechy}} - {{lru|Moduły/Pudełko/ParametryCechy}} zestawu funkcji potrzebnych do budowy szablonu {{s|Szablonowy opis pudełka}}. ** {{m|Ramka}} - {{lru|Moduły/Ramka}} procedur ramkowanych, w ramach których są wykonywane pewne operacje. ** {{m|Specjalne}} - {{lru|Moduły/Specjalne}} procedur do specjalnych zastosowań operacji na obiektach. ** {{m|StronicowyParser}} - {{lru|Moduły/StronicowyParser}} procedur stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych. ** {{m|Szeregi}} - {{lru|Moduły/Szeregi}} procedur do obsługi na tekstach i kolejnych liniach w tekście, a także do wyszukań tam elementów spełniające pewne kryteria funkcyjne. ** {{m|Szablonowe}} - {{lru|Moduły/Szablonowe}} procedur służących do parsowania tekstu nawet z podanych stron. ** {{m|Techniczne}} - {{lru|Moduły/Techniczne}} procedur do operacji technicznych na tekście. ** {{m|Wiki}} - {{lru|Moduły/Wiki}} procedur robiący czynności na obiektach wikidanych. * Moduły standardowe ** {{m|Kategorie}} - {{lru|Moduły/Kategorie}} procedur operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami. ** {{m|Linki}} - {{lru|Moduły/Linki}} procedur obsługujących różnego rodzaju linki. ** {{m|Łatki}} - {{lru|Moduły/Łatki}} procedur łatające braki w mechanizmie MediaWiki. ** {{m|Skrót}} - {{lru|Moduły/Skrót}} procedur łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach. ** {{m|Sprawdź}} - {{lru|Moduły/Sprawdź}} procedur oferujące sprawdzanie danych uzyskanych ze strony. * Specjalistyczne ** {{m|Tabela}} - {{lru|Moduły/Tabela}} procedur tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów. ** {{m|Sekcja referencyjna}} - {{lru|Moduły/Sekcja referencyjna}} procedur linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki. ** {{m|Licencja}} - {{lru|Moduły/Licencja}} procedur wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem. ** {{m|Przypisy}} - {{lru|Moduły/Przypisy}} procedur wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem. ** {{m|Dopracować}} - {{lru|Moduły/Dopracować}} procedur wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu. {{BrClear}} <noinclude><!-- -->{{StandardowaStronaKoniec}}<!-- -->{{Kategoria|Pomoc - Problemy wywołań mechanizmu MediaWiki|sortuj spacją=tak}}<!-- --></noinclude> 87c326zxec5xpqc57tlw1qfxa2pvg8k Wikibooks:Moduły 4 60758 541086 540752 2026-04-27T20:51:54Z Persino 2851 541086 wikitext text/x-wiki <noinclude><!-- -->{{StandardowaStronaStart | nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Moduły}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}} }}</noinclude>{{Spis treści}} Strona przedstawia technologię modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a właściwie spis poszczególnych rozdziałów. Moduły wywoływa się przez, np. formę: {{Tt|{{m|'''Nazwa modułu'''|'''Nazwa funkcji'''}}}}, lub przez: {{Tt|{{m|'''Nazwa modułu'''|'''Nazwa funkcji'''|Parametr 1|Parametr 2|...}}}}, albo: {{Tt|{{m|'''Nazwa modułu'''|'''Nazwa funkcji'''|Parametr 1 {{=}} Wartość 1|Parametr 2 {{=}} Wartość 2|...}}}}, lub w postaci mieszanej: {{Tt|{{m|'''Nazwa modułu'''|'''Nazwa funkcji'''|...|Parametr n {{=}} Wartość n|...|Parametr m|...}}}}, itp.. Parametry podobnie się pisze w wikikodzie i wywołuje jak szablony, tylko z tą różnicą, że w nazwie szablonu jest na samym początku: {{Code|#invoke:}}, co po nim następuje w niej nazwa modułu bez przedrostka {{Code|{{Np|Module|link=tak}}:}}, a pierwszy parametr, który nie jest liczony, jako zmienna, tylko następna z kolei, jest nazwą funkcji w tablicy eksportu. Wtedy jest wywoływany moduł, a w niej ściśle określona funkcja z parametrami jej ramki. Parametrami funkcji też mogą być parametry szablonu rodzica, w której wywoływana jest ta ona. == Moduły podstawowe == {{Kolumny|2| {{SpisTreści|Parametry}} {{SpisTreści|Html}} {{SpisTreści|Książkowe}} {{SpisTreści|Nazwy}} {{SpisTreści|Nazwy/Tom I|3=Nazwy - Tom I}} {{SpisTreści|Nazwy/Tom II|3=Nazwy - Tom II}} {{SpisTreści|Nazwy/Tom III|3=Nazwy - Tom III}} {{SpisTreści|Nazwy/Tom IV|3=Nazwy - Tom IV}} {{SpisTreści|Nazwy/Np}} {{SpisTreści|Pudełko}} {{SpisTreści|Pudełko/Tom I|3=Pudełko - Tom I}} {{SpisTreści|Pudełko/Tom II|3=Pudełko - Tom II}} {{SpisTreści|Pudełko/Tom III|3=Pudełko - Tom III}} {{SpisTreści|Pudełko/Tom IV|3=Pudełko - Tom IV}} {{SpisTreści|Pudełko/Tom V|3=Pudełko - Tom V}} {{SpisTreści|Pudełko/Pomocne|3=Pudełko - Pomocne}} {{SpisTreści|Pudełko/Potrzebne|3=Pudełko - Potrzebne}} {{SpisTreści|Pudełko/ParametryCechy|3=Pudełko - Parametry Cechy}} {{SpisTreści|Ramka}} {{SpisTreści|Specjalne}} {{SpisTreści|StronicowyParser}} {{SpisTreści|Szeregi}} {{SpisTreści|Szablonowe}} {{SpisTreści|Techniczne}} {{SpisTreści|Wiki}} }} == Moduły standardowe == {{Kolumny|2| {{SpisTreści|Kategorie}} {{SpisTreści|Linki}} {{SpisTreści|Łatki}} {{SpisTreści|Skrót}} {{SpisTreści|Strony}} {{SpisTreści|Sprawdź}} }} == Moduły specjalistyczne == {{Kolumny|2| {{SpisTreści|Tabela}} {{SpisTreści|Sekcja referencyjna}} {{SpisTreści|Plik}} {{SpisTreści|Licencja}} {{SpisTreści|Przypisy}} {{SpisTreści|Dopracować}} }} {{BrClear}} <noinclude><!-- -->{{StandardowaStronaKoniec}}<!-- -->{{Kategorie | Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak | Pomoc - Problemy wywołań mechanizmu MediaWiki }}<!-- --></noinclude> 7utsbzkjycmziwny7d6f015ba3mblcb Napary 0 61337 541026 540570 2026-04-27T18:17:49Z EdytaT 2664 /* Spis treści */ 541026 wikitext text/x-wiki <div style="font-size: 150%; letter-spacing: 7px; text-align: center;margin:10px">'''[[Napary]]'''</div> {{status|-100%|Kulinaria|Zielarstwo}} [[Grafika:Peppermint-tea hg.jpg|400px|center]] <noinclude><small>< [[/Okładka|Okładka]]</small></noinclude> <inputbox> type=search width=40 namespaces=(Główna)**, prefix=Napary searchbuttonlabel=Szukaj break=no placeholder=Szukaj w poradniku </inputbox> = Spis treści = {{Wikipedia|Napar}} {{Wikisłownik|napar}} {{Commons|Category:Tisanes}} # [[/Napar|Napar ziołowy]] # [[/Zaparzanie|Zaparzanie ziół]] # [[/Przechowywanie|Przechowywanie naparów]] # [[/Działanie|Działanie naparów]] # [[/Rodzaje|Napary roślinne (herbatki)]] ## Acai → [[Napary/Euterpa warzywna|Euterpa warzywna]] ## Acerola → [[Napary/Malpigia granatolistna|Malpigia granatolistna]] ## Alfalfa → [[Napary/Lucerna siewna|Lucerna siewna]] ## Anyż → [[Napary/Badian właściwy|Badian właściwy]] ## Aguaje → [[Napary/Mauritia flexuosa|Mauritia flexuosa (buriti)]] ## [[Napary/Aloes|Aloes]] ## [[Napary/Ambrozja peruwiańska|Ambrozja peruwiańska (marco)]] ## [[Napary/Ananas|Ananas]] ## [[Napary/Aralia mandżurska|Aralia mandżurska]] ## [[Napary/Arcydzięgiel lekarski|Arcydzięgiel lekarski]] ## [[Napary/Arnika górska|Arnika górska]] ## Ashwagandha → [[Napary/Witania ospała|Witania ospała]] ## [[Napary/Babka lancetowata|Babka lancetowata]] ## [[Napary/Babka piaskowa|Babka piaskowa (psyllium)]] ## [[Napary/Badian właściwy|Badian właściwy (anyż)]] ## [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] ## [[Napary/Bambus|Bambus]] ## [[Napary/Banan|Banan]] ## [[Napary/Bancha|Bancha]] ## [[Napary/Bawarka|Bawarka]] ## [[Napary/Bazylia azjatycka|Bazylia azjatycka (tulasi)]] ## [[Napary/Bazylia pospolita|Bazylia pospolita]] ## [[Napary/Berberys zwyczajny|Berberys zwyczajny]] ## [[Napary/Bez czarny|Bez czarny]] ## [[Napary/Błyskoporek podkorowy|Błyskoporek podkorowy (chaga)]] ## [[Napary/Borówka czarna|Borówka czarna]] ## [[Napary/Borówka brusznica|Borówka brusznica (brusznica)]] ## Boswellia → [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] ## [[Napary/Brodziuszka wiechowata|Brodziuszka wiechowata]] ## Brusznica → [[Napary/Borówka brusznica|Borówka brusznica]] ## [[Napary/Burak|Burak]] ## [[Napary/Brzoza|Brzoza]] ## Buriti → [[Napary/Mauritia flexuosa|Mauritia flexuosa (aguaje)]] ## [[Napary/Buzdyganek naziemny|Buzdyganek naziemny]] ## [[Napary/Bylica draganek|Bylica draganek (estragon)]] ## [[Napary/Bylica pospolita|Bylica pospolita]] ## [[Napary/Camu camu|Camu camu]] ## [[Napary/Canchalagua|Canchalagua]] ## [[Napary/Cascara|Cascara]] ## [[Napary/Catuaba|Catuaba]] ## [[Napary/Centuria pospolita|Centuria pospolita]] ## [[Napary/Chaber bławatek|Chaber bławatek]] (błyskoporek podkorowy) ## Chaga → [[Napary/Błyskoporek podkorowy|Błyskoporek podkorowy]] ## [[Napary/Chanca piedra|Chanca piedra]] ## [[Napary/Chmiel zwyczajny|Chmiel zwyczajny]] ## Chryzantema japońska → [[Napary/Chrysanthemum indicum|Chrysanthemum indicum]] ## Chryzantema ogrodowa → [[Napary/Chrysanthemum morifolium|Chrysanthemum morifolium]] ## [[Napary/Chuchuhuasa|Chuchuhuasa]] ## [[Napary/Cuti cuti|Cuti cuti]] ## [[Napary/Cykoria podróżnik|Cykoria podróżnik]] ## [[Napary/Cynamon cejloński|Cynamon cejloński]] ## [[Napary/Cytryna|Cytryna]] ## [[Napary/Cytryniec chiński|Cytryniec chiński]] ## [[Napary/Czarci pazur|Czarci pazur]] ## [[Napary/Czarnuszka siewna|Czarnuszka siewna]] ## [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, vilcacora)]] ## Czernica → [[Napary/Borówka czarna|Borówka czarna]] lub [[Napary/Jeżyna fałdowana|jeżyna fałdowana]] albo [[Napary/Jeżyna krzewiasta|jeżyna krzewiasta]] ## [[Napary/Czystek kreteński|Czystek kreteński]] ## [[Napary/Czystek szary|Czystek szary]] ## [[Napary/Darjeeling|Darjeeling]] ## [[Napary/Drapacz lekarski|Drapacz lekarski]] ## [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa oraz wielkokwiatowa i pospolita]] ## [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] ## [[Napary/Earl Grey|Earl Grey]] ## [[Napary/Eleuterokok kolczasty|Eleuterokok kolczasty]] ## [[Napary/Epimedium wielkokwiatowe|Epimedium wielkokwiatowe]] ## Estragon → [[Napary/Bylica draganek|Bylica draganek]] ## [[Napary/Eukaliptus gałkowy|Eukaliptus gałkowy]] ## [[Napary/Euterpa warzywna|Euterpa warzywna]] ## Fenkuł włoski → [[Napary/Koper włoski|Koper włoski]] ## [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek polny)]] ## [[Napary/Flaszowiec miękkociernisty|Flaszowiec miękkociernisty (annona, graviola)]] ## [[Napary/Gałka muszkatołowa|Gałka muszkatołowa]] ## [[Napary/Flor blanca|Flor blanca]]Flor de Arena ## [[Napary/Flor de Arena|Flor de Arena]] ## [[Napary/Genmaicha|Genmaicha]] ## Ginkgo → [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy]] ## Goji → [[Napary/Kolcowój pospolity|Kolcowój pospolity]] ## [[Napary/Gojnik|Gojnik]] ## [[Napary/Goryczka żółta|Goryczka żółta]] ## Gotu kola → [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka]] ## [[Napary/Goździki|Goździki]] ## [[Napary/Głóg dwuszyjkowy|Głóg dwuszyjkowy]] ## [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] ## [[Napary/Grusza|Grusza]] ## Gryka → [[Napary/Gryka tatarka|Gryka tatarka]] ## [[Napary/Gryka tatarka|Gryka tatarka (gryka, gryka tatarska, tatarka)]] ## [[Napary/Guduchi|Guduchi]] ## Guarana → [[Napary/Paulinia guarana|Paulinia guarana]] ## Gurmar → [[Napary/Gymnema sylvestre|Gymnema sylvestre]] ## [[Napary/Gymnema sylvestre|Gymnema sylvestre (gurmar)]] ## [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum (jiaogulan, ziele wieczności)]] ## [[Napary/Gyokuro|Gyokuro]] ## Herbata biała → [[Napary/Herbata chińska|Herbata chińska (biała)]] ## [[Napary/Herbata chińska|Herbata chińska]] ## Herbata czarna → [[Napary/Herbata chińska|Herbata chińska (czarna)]] ## Herbata czerwona → [[Napary/Pu-erh|Pu-erh]] ## Herbata niebieska → [[Napary/Klitoria ternateńska|Klitoria ternateńska]] ## [[Napary/Herbata zielona|Herbata zielona]] ## [[Napary/Hercampuri|Hercampuri]] ## Hibiskus → [[Napary/Ketmia szczawiowa|Ketmia szczawiowa]] ## [[Napary/Houjicha|Houjicha]] ## Honeybush → [[Napary/Miodokrzew|Miodokrzew]] ## [[Napary/Imbir lekarski|Imbir lekarski]] ## Jagoda kamczacka → [[Napary/Wiciokrzew siny|Wiciokrzew siny]] ## [[Napary/Jasnota biała|Jasnota biała]] ## [[Napary/Jasnota purpurowa|Jasnota purpurowa]] ## [[Napary/Jaśmin|Jaśmin]] ## [[Napary/Jemioła pospolita|Jemioła pospolita]] ## [[Napary/Jeżyna fałdowana|Jeżyna fałdowana]] ## [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] ## [[Napary/Jeżówka|Jeżówka]] ## [[Napary/Jęczmień|Jęczmień]] ## Jiaogulan → [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum]] ## [[Napary/Kabusecha|Kabusecha]] ## Kadzidla → [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski (olibanum)]] ## [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski (kadzidla, olibanum)]] ## [[Napary/Kakao|Kakao]] ## [[Napary/Karbieniec pospolity|Karbieniec]] ## [[Napary/Karczoch zwyczajny|Karczoch zwyczajny]] ## [[Napary/Kardamon malabarski|Kardamon malabarski]] ## Karob → [[Napary/Szarańczyn strąkowy|Szarańczyn strąkowy]] ## [[Napary/Kawa|Kawa]] ## [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] ## [[Napary/Klitoria ternateńska|Klitoria ternateńska]] ## [[Napary/Kłosowiec fenkułowy|Kłosowiec fenkułowy]] ## [[Napary/Kmin rzymski|Kmin rzymski]] ## [[Napary/Kminek zwyczajny|Kminek zwyczajny]] ## [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] ## Koci pazur → [[Napary/Czepota puszysta|Czepota puszysta (vilcacora)]] ## [[Napary/Kolcorośl lekarski|Kolcorośl lekarski (sarsaparilla)]] ## [[Napary/Kolendra siewna|Kolendra siewna]] ## [[Napary/Kolcowój pospolity|Kolcowój pospolity (goji)]] ## [[Napary/Koniczyna czerwona|Koniczyna czerwona]] ## [[Napary/Konopie siewne|Konopie siewne]] ## [[Napary/Koper ogrodowy|Koper ogrodowy]] ## [[Napary/Koper włoski|Koper włoski]] ## [[Napary/Korzennik lekarski|Korzennik lekarski (ziele angielskie)]] ## [[Napary/Kozieradka pospolita|Kozieradka pospolita (greckie siano)]] ## [[Napary/Kozłek lekarski|Kozłek lekarski]] ## [[Napary/Krokosz barwierski|Krokosz barwierski]] ## [[Napary/Krwawnik pospolity|Krwawnik pospolity]] ## [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] ## [[Napary/Krwiściąg mniejszy|Krwiściąg mniejszy]] ## [[Napary/Kruszyna pospolita|Kruszyna pospolita]] ## [[Napary/Kukicha|Kukicha]] ## Kurkuma → [[Napary/Ostryż długi|Ostryż długi]] ## [[Napary/Lakownica żółtawa|Lakownica żółtawa (Reishi)]] ## [[Napary/Lapacho|Lapacho]] ## [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] ## [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] ## [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] ## Leuza → [[Napary/Szczodrak krokoszowaty|Szczodrak krokoszowaty (maral)]] ## [[Napary/Lima|Lima (limetka, limonka)]] ## [[Napary/Lipa drobnolistna|Lipa drobnolistna]] ## [[Napary/Liściokwiat garbnikowy|Liściokwiat garbnikowy]] ## Liść laurowy → [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny]] ## [[Napary/Lubczyk ogrodowy|Lubczyk ogrodowy]] ## [[Napary/Lucerna siewna|Lucerna siewna (alfalfa)]] ## [[Napary/Lukrecja gładka|Lukrecja gładka]] ## [[Napary/Łopian większy|Łopian większy]] ## [[Napary/Macierzanka piaskowa|Macierzanka piaskowa]] ## [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] ## Maitake → [[Napary/Żagwica listkowata|Żagwica listkowata]] ## Majeranek → [[Napary/Lebiodka majeranek|Lebiodka majeranek]] ## [[Napary/Mak polny|Mak polny]] ## [[Napary/Malina właściwa|Malina właściwa]] ## [[Napary/Malpigia granatolistna|Malpigia granatolistna (acerola)]] ## [[Napary/Malwa czarna|Malwa czarna]] ## [[Napary/Manayupa|Manayupa]] ## [[Napary/Mandarynka|Mandarynka]] ## Maral → [[Napary/Szczodrak krokoszowaty|Szczodrak krokoszowaty (leuza)]] ## Marco → [[Napary/Ambrozja peruwiańska|Ambrozja peruwiańska]] ## Marzanka → [[Napary/Przytulia wonna|Przytulia wonna]] ## [[Napary/Masala czaj|Masala czaj]] ## [[Napary/Matcha|Matcha]] ## [[Napary/Mauritia flexuosa|Mauritia flexuosa (aguaje, buriti)]] ## [[Napary/Mącznica lekarska|Mącznica lekarska]] ## [[Napary/Melisa lekarska|Melisa lekarska]] ## [[Napary/Melonowiec właściwy|Melonowiec właściwy (papaja)]] ## Mesquite → [[Napary/Jadłoszyn baziowaty|Jadłoszyn baziowaty]] ## [[Napary/Miechunka peruwiańska|Miechunka peruwiańska]] ## [[Napary/Miodunka plamista|Miodunka plamista]] ## [[Napary/Mięta pieprzowa|Mięta pieprzowa]] ## [[Napary/Mięta wonna|Mięta wonna]] ## [[Napary/Mięta zielona|Mięta zielona (mięta egipska, mięta kłosowa)]] ## [[Napary/Miłowonka trójlistkowa|Miłowonka trójlistkowa]] ## [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy]] ## [[Napary/Mirt cytrynowy|Mirt cytrynowy]] ## [[Napary/Mniszek lekarski|Mniszek lekarski]] ## [[Napary/Mocha chai|Mocha chai]] ## [[Napary/Morela|Morela]] ## [[Napary/Moringa oleifera|Moringa oleifera]] ## [[Napary/Morwa biała|Morwa biała]] ## [[Napary/Morwa czarna|Morwa czarna]] ## [[Napary/Muira Puama|Muira Puama]] ## [[Napary/Muna Muna|Muna Muna (Muña Muña)]] ## [[Napary/Nagietek lekarski|Nagietek lekarski]] ## [[Napary/Nawłoć pospolita|Nawłoć pospolita]] ## Neem → [[Napary/Miodla indyjskia|Miodla indyjskia]] ## [[Napary/Niepokalanek pospolity|Niepokalanek pospolity]] ## [[Napary/Nostrzyk żółty|Nostrzyk żółty]] ## Olibanum → [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski (kadzidla)]] ## [[Napary/Oliwka europejska|Oliwka europejska]] ## [[Napary/Oman wielki|Oman wielki]] ## Oolong → [[Napary/Ulung|Ulung]] ## [[Napary/Opuncja figowa|Opuncja figowa]] ## Oregano → [[Napary/Lebiodka pospolita|Lebiodka pospolita]] ## [[Napary/Orkisz|Orkisz]] ## [[Napary/Ostrokrzew gujański|Ostrokrzew gujański (guayusa)]] ## Ostrokrzew paragwajski → [[Napary/Yerba mate|Yerba mate (mate)]] ## [[Napary/Ostropest plamisty|Ostropest plamisty]] ## [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] ## Papaja → [[Napary/Melonowiec właściwy|Melonowiec właściwy]] ## [[Napary/Pasuchaca|Pasuchaca]] ## [[Napary/Paulinia guarana|Paulinia guarana]] ## [[Napary/Perz właściwy|Perz właściwy]]Schinus peruwiański ## Pieprz różowy →[[Napary/Schinus peruwiański|Schinus peruwiański]] ## [[Napary/Pierwiosnek lekarski|Pierwiosnek lekarski]] ## [[Napary/Pietruszka|Pietruszka]] ## [[Napary/Pięciornik gęsi|Pięciornik gęsi]] ## [[Napary/Pięciornik kurze ziele|Pięciornik kurze ziele]] ## [[Napary/Podbiał pospolity|Podbiał pospolity]] ## [[Napary/Pomarańcza|Pomarańcza]] ## [[Napary/Pokrzywa|Pokrzywa]] ## [[Napary/Porzeczka czarna|Porzeczka czarna]] ## [[Napary/Porzeczka czerwona|Porzeczka czerwona]] ## [[Napary/Prawoślaz lekarski|Prawoślaz lekarski]] ## [[Napary/Przetacznik leśny|Przetacznik leśny]] ## [[Napary/Przytulia wonna|Przytulia wonna]] ## [[Napary/Przywrotnik pospolity|Przywrotnik pospolity (ziele kobiet)]] ## Psyllium → [[Napary/Babka piaskowa|Babka piaskowa]] ## [[Napary/Pszenica|Pszenica]] ## [[Napary/Pu-erh|Pu-erh]] ## [[Napary/Pysznogłówka szkarłatna|Pysznogłówka szkarłatna]] ## [[Napary/Rabarbar ogrodowy|Rabarbar ogrodowy]] ## Rabarbar → [[Napary/Rabarbar ogrodowy|Rabarbar ogrodowy]] albo [[Napary/Rzewień palczasty|Rzewień palczasty]] ## [[Napary/Rdest ptasi|Rdest ptasi]] ## [[Napary/Rdest wielokwiatowy|Rdest wielokwiatowy]] ## [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty (rdest japoński)]] ## Reishi → [[Napary/Lakownica żółtawa|Lakownica żółtawa]] ## [[Napary/Rokitnik zwyczajny|Rokitnik zwyczajny]] ## [[Napary/Rooibos|Rooibos]] ## [[Napary/Rozmaryn|Rozmaryn]] ## [[Napary/Róża damasceńska|Róża damasceńska]] ## [[Napary/Różeniec górski|Różeniec górski]] ## [[Napary/Rumianek pospolity|Rumianek pospolity]] ## [[Napary/Rutwica lekarska|Rutwica lekarska]] ## [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar)]] ## Sarsaparilla → [[Napary/Kolcorośl lekarski|Kolcorośl lekarski]] ## [[Napary/Serdecznik pospolity|Serdecznik pospolity]] ## [[Napary/Sencha|Sencha]] ## [[Napary/Senes|Senes (senna)]] ## [[Napary/Shatavari|Shatavari]] ## Shiitake → [[Napary/Twardnik japoński|Twardnik japoński]] ## [[Napary/Sincha|Sincha]] ## [[Napary/Skrzyp polny|Skrzyp polny]] ## [[Napary/Słonecznik bulwiasty|Słonecznik bulwiasty (topinambur)]] ## [[Napary/Słonecznik zwyczajny|Słonecznik zwyczajny]] ## [[Napary/Soplówka jeżowata|Soplówka jeżowata]] ## [[Napary/Sparceta siewna|Sparceta siewna]] ## [[Napary/Szałwia lekarska|Szałwia lekarska]] ## [[Napary/Szczeć pospolita|Szczeć pospolita]] ## [[Napary/Szczodrak krokoszowaty|Szczodrak krokoszowaty (leuza, maral)]] ## [[Napary/Ślaz dziki|Ślaz dziki (malwa)]] ## [[Napary/Świerk pospolity|Świerk pospolity]] ## [[Napary/Świetlik łąkowy|Świetlik łąkowy]] ## [[Napary/Świerzbiec właściwy|Świerzbiec właściwy]] ## [[Napary/Tasznik pospolity|Tasznik pospolity]] ## [[Napary/Tatarak zwyczajny|Tatarak zwyczajny]] ## Tatarka → [[Napary/Gryka tatarka|Gryka tatarka]] ## [[Napary/Tencha|Tencha]] ## Topinambur → [[Napary/Słonecznik bulwiasty|Słonecznik bulwiasty]] ## [[Napary/Traganek błoniasty|Traganek błoniasty]] ## [[Napary/Trawa cytrynowa|Trawa cytrynowa]] ## [[Napary/Truskawka|Truskawka]] ## [[Napary/Trybula ogrodowa|Trybula ogrodowa]] ## Tulsi → [[Napary/Bazylia azjatycka|Bazylia azjatycka]] ## [[Napary/Twardnik japoński|Twardnik japoński (shiitake)]] ## Tymianek → [[Napary/Macierzanka tymianek|Macierzanka tymianek]] ## [[Napary/Ubos|Ubos]] ## [[Napary/Ulung|Ulung (oolong)]] ## Vilcacora → [[Napary/Czepota puszysta|Czepota puszysta (koci pazur)]] ## Waleriana → [[Napary/Kozłek lekarski|Kozłek lekarski]] ## [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] ## [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] ## [[Napary/Werbena pospolita|Werbena pospolita]] ## [[Napary/Wiązówka błotna|Wiązówka błotna (tawuła)]] ## [[Napary/Wierzbownica drobnokwiatowa|Wierzbownica drobnokwiatowa]] ## [[Napary/Wiciokrzew siny|Wiciokrzew siny (jagoda kamczacka)]] ## [[Napary/Winorośl|Winorośl]] ## [[Napary/Wiśnia|Wiśnia]] ## [[Napary/Witania ospała|Witania ospała (ashwagandha)]] ## [[Napary/Wrotycz pospolity|Wrotycz pospolity]] ## [[Napary/Wrotycz maruna|Wrotycz maruna]] ## Wszechlek → [[Napary/Żeń-szeń|Żeń-szeń]] ## [[Napary/Yacon|Yacon]] ## [[Napary/Yerba mate|Yerba mate (mate)]] ## Ziele angielskie → [[Napary/Korzennik lekarski|Korzennik lekarski]] ## Ziele wieczności → [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum]] ## Zielona herbata → [[Napary/Herbata zielona|Herbata zielona]] ## [[Napary/Złocień japoński|Złocień japoński]] ## [[Napary/Złocień ogrodowy|Złocień ogrodowy]] ## [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] ## [[Napary/Żurawina|Żurawina]] # [[Napary/Mieszanki|Mieszanki ziołowe]] # [[Napary/Ajuwerda|Napary tradycyjnej medycyny indyjskiej (ajuwerda)]] # [[Napary/TMC|Napary tradycyjnej medycyny chińskiej (TMC)]] # [[Napary/Pomoc|Słownik zielarski]] # [[Napary/Biblioteka|Biblioteka]] s9vfx30szpgyx2i8s8t9nnp4uc9itbc Napary/Pomoc 0 61343 541013 537185 2026-04-27T17:19:52Z EdytaT 2664 /* K */ 541013 wikitext text/x-wiki <noinclude>{{NawigacjaG | 1 = Napary | 2 = | 3 = }}</noinclude> {{SpisAlfabetyczny}} == Symbole == * ø - (''łac.'' tintura madre'') == A == * acetylocholina - jest neuroprzekaźnikiem (zob. też [[w:Acetylocholina|acetylocholina]] w Wikipedii). * acid. (''łac.'' acidum) - kwas * adaptogen - substancja pochodzenia naturalnego lub surowiec roślinny o korzystnym dla zdrowia nieswoistym działaniu, pomagający w adaptacji organizmu do obciążenia [[Napary/Działanie#Stres|stresem]] fizycznym i psychicznym, wspomagający utrzymanie równowagi [[Napary/Pomoc#H|(homeostazy)]] organizmu i niewykazujący działania modulującego oraz skutków ubocznych. Do adaptogenow naleza m. in. [[Napary/Brodziuszka wiechowata|brodziuszka wiechowata]], [[Napary/Traganek błoniasty|traganek błoniasty]], [[Napary/Aralia mandżurska|aralia mandżurska]], [[Napary/Bakopa drobnolistna|bakopa drobnolistna]], [[Napary/Wąkrotka azjatycka|wąkrotka azjatycka]], [[Napary/Eleuterokok kolczasty|eleuterokok kolczasty]], [[Napary/Lukrecja gładka|lukrecja gładka]], [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum]], [[Napary/Bazylia azjatycka|bazylia azjatycka]], [[Napary/Żeń-szeń|żeń-szeń]], [[Napary/Szczodrak krokoszowaty|szczodrak krokoszowaty]], [[Napary/Różeniec górski|różeniec górski]], [[Napary/Cytryniec chiński|cytryniec chiński]], [[Napary/Witania ospała|witania ospała]]. (zob. też [[w:Adaptogen|adaptogen]] w Wikipedii). * aeth. (''łac.'' aetherea) - eterowy (np. nalewka) * alkaloidy - grupa związków o charakterze zasadowym o silnym działaniu na organizm ludzki (zob. też [[w:Alkaloidy|alkaloidy]] w Wikipedii). * amp. (''łac.'' ampullae) - ampułki * anetol - organiczny związek chemiczny otrzymywany z [[Napary/Pomoc#O|olejków eterycznych]] [[Napary/Badian właściwy|badianu właściwego (anyżu)]] i [[Napary/Koper włoski|kopru włoskiego]] o charakterystycznym anyżowym zapachu (zob. też [[w:Anetol|anetol]] w Wikipedii). * anthodium (''łac.'', ''skr.'' anth.) – koszyczek kwiatowy (roślin z rodziny astrowatych) (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * antrachinony - związki o działaniu drażniącym [[w:Błona śluzowa|błonę śluzową]] i wzmagające perystaltykę jelita grubego. Występują w [[Napary/Kruszyna pospolita|korze kruszyny]], kłączu [[Napary/Rzewień palczasty|rzewienia palczastego]], liściach aloesu. Stosowany w celach [[Napary/Działanie#Przeczyszczające|przeczyszczających]] (zob. też [[w:Antrachinony|antrachinony]] w Wikipedii). * antyocyjany - naturalne barwniki pochodzenia roślinnego (zob. też [[w:Antyocyjany|antyocyjany]] w Wikipedii). * antyoksydant → [[Napary/Pomoc#P|przeciwutleniacz]] (zob. też [[w:Antyoksydant|antyoksydant]] w Wikipedii). * antyseptyk - substancja odkażająca, niszcząca drobnoustroje (zob. też [[w:Antyseptyk|antyseptyk]] w Wikipedii). * apigenina - jeden z [[Napary/Pomoc#F|flawonoidów]] o silnych właściwościach [[Napary/Pomoc#P|przeciwutleniających]] i przeciwzapalnych (zob. też [[w:Apigenina|apigenina]] w Wikipedii). * aq. (''łac.'' aquosus) - wodny [[#top|↑]] == B == * bacca (''łac.'') – jagoda. (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * bals. (''łac.'' balsamum) - balsam * berberyna – zawarta w [[Napary/Berberys zwyczajny|berberysie zwyczajnym]], [[Napary/Gorzknik kanadyjski|gorzkniku kanadyjskim]], [[Napary/Mahonia pospolita|mahoni pospolitej]] (tańszy zamiennik gorzknika), [[Napary/Cynowód chiński|cynowodzie chińskim]]. Rzadko odnotowano działania uboczne, takie jak: mdłości, ból brzucha, wzdęcia, zatwardzenie lub rozwolnienie. W badaniach wskazano na możliwość hamowania wchłaniania witaminy B12 i żelaza. Berberyna jest często stosowana w dawkach do 1500 mg dziennie, co zwiększa ryzyko skutków ubocznych. (zob. też [[w:Berberyna|Berberyna]] w Wikipedii). * błonnik - (zob. też [[w:Błonnik|błonnik]] w Wikipedii). * bulbus - (''łac.'', ''skr.'' bulb.) - cebula. (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). [[#top|↑]] == C == * calyx (''łac.'') - kielich (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * caput (''łac.'') – makówka (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * comp. (''łac.'' compositus) - złożony * conc. (''łac.'' concentratum) - stężony * corolla (''łac.'') – korona (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * cortex (''łac.'', ''skr.'' cort.) - kora (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * cyneol - (zob. też [[w:Cyneol|cyneol]] w Wikipedii). * cytral - (zob. też [[w:Cytral|cytral]] w Wikipedii). [[#top|↑]] == D == * dec. (''łac.'' decoctum) → odwar * depur. (''łac.'' depuratus) - oczyszczony [[#top|↑]] == E == * ekstrakt - zagęszczony preparat roślinny lub zwierzęcy, otrzymywany poprzez wytrawienie surowca rozpuszczalnikiem, na przykład wodą bądź etanolem (zob. też [[w:Wyciąg|wyciąg]] w Wikipedii). :''łac: :en :de: Extrakt'' * embryo (''łac.'') – zarodek (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * empl. (''łac.'' emplastrum) - plaster * enzymy lipolityczne → [[Napary/Pomoc#L|lipazy]] * estragol - organiczny związek chemiczny wystepujacy w [[Napary/Bylica draganek|bylicy draganku (estragonie)]], [[Napary/Trybula ogrodowa|trybuli ogrodowej]], [[Napary/Bazylia pospolita|bazylii pospolitej]], [[Napary/Badian właściwy|badianu właściwego (anyżu)]], [[Napary/Kłosowiec fenkułowy|kłosowcu fenkułowym]] itd. Istnieją badania (Komitet Naukowy ds. Żywności (SCF, 2001)) stwierdzające, że w dużych ilościach jest zarówno genotoksyczny, jak i rakotwórczy (zob. też [[w:Estragol|estragol]] w Wikipedii). * estrogeny - grupa hormonów płciowych: Estrogenny występujące w roślinach to [[Napary/Pomoc#F|fitoestrogeny]] (zob. też [[w:Estrogeny|estrogeny]] w Wikipedii). * eugenol - organiczny związek chemiczny z grupy fenoli. Wykorzystywany w stomatologii. W większych dawkach bardzo szkodliwy. Zawarty w [[Napary/Goździki|goździkach]], [[Napary/Cynamon cejloński|cynamonie cejlońskim]], [[Napary/Kuklik pospolity|kukliku pospolitym]]. Wykazano, że eugenol ma działanie [[Napary/Działanie#Przeciwutleniacze|antyoksydacyjne]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] i [[Napary/Działanie#Przeciwnowotworowe|przeciwnowotworowe]] (zob. też [[w:Eugenol|eugenol]] w Wikipedii). * exoc. (''łac.'' exocarpium) - naowocnia * extr. (''łac.'' extractum) - wyciąg [[#top|↑]] == F == * fitoestrogeny - mają zdolność wiązania się z receptorami estrogenowymi, co może wpływać na równowagę hormonalną w organizmie (wydłużenie cyklu miesiączkowego, łagodzenie objawów [[Napary/Działanie#Przekwitanie|przekwitania (menopauzy)]]), zmniejszenie zagrożenia [[Napary/Działanie#Osteoporoza|osteoporozą]], zmniejszenie zagrożenia [[Napary/Działanie#Miażdżyca|miażdżycą]], zmniejszenie zagrożenia [[Napary/Działanie#Prostata|rozrostem gruczołu krokowego (przerost prostaty)]] (zob. też [[w:Fitoestrogeny|fitoestrogeny]] w Wikipedii). * flawonoidy - w roślinach spełniają funkcję barwników, [[Napary/Pomoc#P|przeciwutleniaczy]] i naturalnych insektycydów oraz fungicydów (zob. też [[w:Flawonoidy|flawonoidy]] w Wikipedii). * fluid. (''łac.'' fluidum) - płynny * fol. ''łac.'' folium) - liść * flos (''łac.'', ''skr.'' fl.) – kwiat (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * flores (''łac.'', ''skr.'' fl.) – kwiaty (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * folium (''łac.'') – liść (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * fructus (''łac.'', ''skr.'' fr.) – owoc (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * fungus (''łac.'') – grzyb (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). [[#top|↑]] == G == * GABA - neuroprzekaźnik hamujący, który ogranicza nadmierne pobudzenie układu nerwowego w sytuacji stresowej. Wycisza, uspokaja i sprzyja relaksacji. Może obniżać stężenie we krwi kortyzolu (hormonu stresu) (zob. też [[w:GABA|GABA]] w Wikipedii). * garbniki roślinne → [[Napary/Pomoc#T|taniny]]. * gemma (''łac.'', ''skr.'' gemm.) – pąk, pączek (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * gemmae (''łac.'', ''skr.'' gemm.) – pąki, pączki (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * glandula (''łac.'') – gruczoł (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * glikozydy - (zob. też [[w:Glikozydy|glikozydy]] w Wikipedii). * gorycze - wzmacniają wydzielanie soków żołądkowych. Wspierają [[Napary/Działanie#Oczyszczanie z toksyn|detoksykację]] wątroby. Stymulują trzustkę do pracy, ułatwiając trawienie i odpływ żółci. Należy je spożywać 30 min przed posiłkiem. Poza tym działają uspokajająco i wzmacniająco. Występują w [[Napary/Goryczka żółta|goryczce żółtej]], [[Napary/Bylica piołun|bylicy piołunie]], [[Napary/Chmiel zwyczajny|chmielu zwyczajnym]], [[Napary/Mniszek lekarski|mniszku lekarskim]], [[Napary/Karczoch zwyczajny|karczochu zwyczajnym]], [[Napary/Cykoria podróżnik|cykorii podróżniku]], [[Napary/drapacz lekarski|drapaczu lekarskim]] oraz kawie, herbacie i gorzkiej czekoladzie. (zob. też [[w:Gorycze|gorycze]] w Wikipedii). * guaranina - rodzaj kofeiny pochodzący z [[Napary/Paulinia guarana|guarany]] (zob. też [[w:Kofeina|kofeina (guaranina)]] w Wikipedii). * gutt. (''łac.'' guttae) - krople [[#top|↑]] == H == * herba (''łac.'', ''skr.'' herb.) - ziele (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * histamina - (zob. też [[w:Histamina|histamina]] w Wikipedii). * homeostaza - hormon tkankowy i neuroprzekaźnik pośredniczący w rozwoju reakcji alergicznej w organizmie (zob. też [[w:Homeostaza|Homeostaza]] w Wikipedii). * hydrobr.(''łac.'' hydrobromicum) - bromowodorek * hydrochl. (''łac.'' hydrochloricum) - chlorowodorek * hiperycyna - działa [[Napary/Działanie#Przeciwwirusowe|przeciwwirusowo]] i [[Napary/Działanie#Depresja|przeciwdepresyjnie]]. Występuje w [[Napary/Dziurawiec zwyczajny|dziurawcu]] (zob. też [[w:Hiperycyna|Hiperycyna]] w Wikipedii). [[#top|↑]] == I == * inflorescentia (''łac.'', ''skr.'' inflor.) - kwiatostan (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * inf. (''łac.'' infusum) → [[Napary/Napar|napar]] * intr. (''łac.''intractum) - wyciąg ze świeżej rośliny. * inulina - w jelitach pełni funkcję [[w:Prebiotyk|prebiotyku]]. Powoduje lepszą perystaltykę jelit, zmniejszenie wchłaniania [[w:Glukoza|glukozy]] do krwiobiegu oraz regulację poziomu [[w:Cholesterol|cholesterolu]]. Znajduje się w m.in. korzeniach [[Napary/Cykoria podróżnik|cykorii]], bulwach [[Napary/Słonecznik bulwiasty|topinamburu]] oraz kłączach [[Napary/Omanu wielki|omanu wielkiego]], czosnku i cebuli (zob. też [[w:Inulina|inulina]] w Wikipedii). * irydoidy - (zob. też [[w:Irydoidy|irydoidy]] w Wikipedii). * izoflawony - należą do [[NaparyPomoc#F|fitoestrogenów]] i są popularne jako składnik suplementów diety, zwłaszcza dla kobiet w okresie menopauzy, ponieważ mogą łagodzić jej objawy, takie jak uderzenia gorąca (zob. też [[w:Izoflawony|izoflawony]] w Wikipedii). * immunomodulacja - działanie substancji czynnej na układ odpornościowy (zob. też [[w:Immunomodulacja|immunomodulacja]] w Wikipedii). * immunostymulacja - działanie substancji czynnej na pobudzanie układu odpornościowego (zob. też [[w:Immunostymulacja|immunostymulacja]] w Wikipedii). [[#top|↑]] == K == * kartenoidy - (zob. też [[w:Kartenoidy|kartenoidy]] w Wikipedii). * karwakrol - działa [[Napary/Działanie#Moczopędne|moczopędnie]], [[Napary/Działanie#Przeciwskurczowe|przeciwskurczowo]], [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]], [[Napary/Działanie#Pasożyty|przeciwrobaczo]]. Występuje w [[Napary/Macierzanka tymianek|macierzance]] (tymianku), [[Napary/Lebiodka pospolita|lebiodce]] (oregano) i [[Napary/Kminek_zwyczajny|kminku]] (zob. też [[w:Karwakrol|karwakrol]] w Wikipedii). * kłącze : ''łac: rhizoma :en: rhizome de: Rhizom'' * kodeina - [[Napary/Pomoc#A|alkaloid]] o działaniu [[Napary/Działanie#Przeciwbólowe|przeciwbólowym]] i [[Napary/Działanie#Przeciwkaszlowe|przeciwkaszlowym]] (zob. też [[w:Kodeina|kodeina]] w Wikipedii). * kofeina - organiczny związek chemiczny, alkaloid purynowy znajdujący się w ziarnach kawy i wielu innych surowcach roślinnych: Do tej grupy należą np. [[Napary/Pomoc#G|guaranina]], [[Napary/Pomoc#M|mateina]], [[Napary/Pomoc#T|teina]] (zob. też [[w:Kofeina|kofeina]] w Wikipedii). * kolagen - (zob. też [[w:Kolagen|kolagen]] w Wikipedii). * kora : ''łac: cortex :en: bark de: Rinde'' * korzeń :''łac: radix :en: de: Wurzel'' * koszyczek :''łac: anthodium :en: head, capitula de: Blütenkorb, Korb'' * krzemionka - pomaga wzmocnić kości, stawy i tkankę łączną, poprawia kondycję skóry, włosów i paznokci. Wspiera układ krążenia i odporność. Może pomóc w profilaktyce miażdżycy i osteoporozy. Występuje np. w [[Napary/Skrzyp polny|skrzypie polnym]]. (zob. też [[w:Krzemionka|krzemionka]] w Wikipedii). * kumaryna - (zob. też [[w:Kumaryna|kumaryna]] w Wikipedii). * kurkumina - (zob. też [[w:Kurkumina|kurkumina]] w Wikipedii). * kwas chlorogenowy - naturalny [[Napary/Pomoc#P|przeciwutleniacz]] występujący np. w [[Napary/Yerba mate|yerba mate]], zielonych liściach i owocach kawowca, głogu, karczochach, pokrzywie, czarnych jagodach, surowych ziemniakach oraz w mniejszych ilościach m.in. w bluszczu pospolitym, śliwkach, czereśniach, jabłkach, brzoskwiniach, morelach (zob. też [[w:Kwas chlorogenowy|kwas chlorogenowy]] w Wikipedii). * kwas ferulowy - występuje naturalnie w wielu roślinach, głównie w liściach, nasionach i korze drzew iglastych, w ziarnach pszenicy, ryżu, kukurydzy i żyta. Zawiera go także, kora wierzby rzęsa, szpinak, ziele bodziszków, ziele czartawy, ziele gwiazdnic, ziele widłaków, ziele zapaliczki (zob. też [[w:Kwas ferulowy|kwas ferulowy]] w Wikipedii). * kwas foliowy - (zob. też [[w:Kwas foliowy|kwas foliowy]] w Wikipedii). * kwas galusowy - (zob. też [[w:Kwas galusowy|kwas galusowy]] w Wikipedii). * kwas karnozowy - (zob. też [[w:Kwas karnozowy|kwas karnozowy]] w Wikipedii). * kwas kawowy - (zob. też [[w:Kwas kawowy|kwas kawowy]] w Wikipedii). * kwas salicylowy - jest zawarty w aspirynie (zob. też [[w:Kwas salicylowy|kwas salicylowy]] w Wikipedii). * kwasy bosweliowe - (zob. też [[w:Kwasy bosweliowe|kwasy bosweliowe]] w Wikipedii). * kwasy fenolowe - (zob. też [[w:Kwasy fenolowe|kwasy fenolowe]] w Wikipedii). * kwiat :''łac: flos :en: flower de: Blüte'''' * kwiatostan :''łac: inflorescentia :en: inflorescenc de: Blütenstand'' [[#top|↑]] == L == * lichen (''łac.'') – plecha (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * lignum (''łac.'') – drewno (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * linim. (''łac.'' linimentum) - mazidło * lipolityczny - odnoszący się do procesów lub substancji związanych z rozpadem tkanki tłuszczowej ([[Napary/Pomoc#L|lipolizą]]). * lipazy - grupa enzym ów należących do hydrolaz (enzymów trawiennych) (zob. też [[w:Lipaza|lipazy]] w Wikipedii). * lipoliza - zabieg redukcji tkanki tłuszczowej (zob. też [[w:Lipoliza|lipoliza]] w Wikipedii). * liść :''łac: folium :en: leaf de: Blatt'' * lit - (zob. też [[w:Lit|lit]] w Wikipedii). * luteolina - jeden z [[Napary/Pomoc#F|flawonoidów]] o silnych właściwościach [[Napary/Pomoc#P|przeciwutleniających]] i przeciwzapalnych (zob. też [[w:Luteolina|luteolina]] w Wikipedii). * L-teanina - ma zwiększać intensywność fal alfa w mózgu, co poprawia wydajność pracy i skuteczność nauki (zob. też [[w:Teanina|Teanina]] w Wikipedii). [[#top|↑]] == M == * macerat wodny - wyciąg uzyskiwany przez zalanie ziół letnią wodą (zob. też [[W:Macerat|macerat]] w Wikipedii). :''łac: maceratum :en :de: Mazerat'' * mal. (''łac.'' maleinicum) - maleinian * mateina - rodzaj kofeiny pochodzący z [[Napary/Yerba mate|yerba mate]] (zob. też [[w:Kofeina|kofeina (mateina)]] w Wikipedii). * melanocyty - komórki odpowiedzialne m. in.za pigmentację włosów (zob. też [[w:Melanocyty|melanocyty]] w Wikipedii). * mentol - daje uczucie chłodu i ma działanie [[Napary/Działanie#Przeciwbólowe|przeciwbólowe]], [[Napary/Działanie#Antyseptyczne|antyseptyczne]] i odświeżające. Jest zawarty w [[Napary/Mięta pieprzowa|mięcie]] (zob. też [[w:Mentol|mentol]] w Wikipedii). * morfina - [[Napary/Pomoc#A|alkaloid]] o silnym działaniu [[Napary/Działanie#Przeciwbólowe|przeciwbólowym]] (zob. też [[w:Morfina|morfina]] w Wikipedii). * moździerz - naczynie kuchenne z tłuczkiem do ręcznego rozdrabniania (zob. też [[w:Moździerz|moździerz]] w Wikipedii). :''łac: :en :de: Mörser'' * mukolityczny - zmniejszający lepkość wydzieliny (śluzu) np. przy [[Napary/Działanie#Kaszek|kaszlu mokrym]] (zob. też [[w:Leki mukolityczne|Mukolityki]] w Wikipedii). [[#top|↑]] == N == * nalewka macierzysta - silny wyciąg zazwyczaj z surowca roślinnego, uzyskany w procesie maceracji lub perkolacji w odpowiednim rozpuszczalniku. :''łac: tintura madre :en: de: Urtinktur'' * naowocnia :''łac: pericarpium :en: de: '' * [[Napary/Napar|'''napar''']] – płyn uzyskiwany przez parzenie delikatnych fragmentów ziół (liści, kwiatów). :''łac: infusum :en :de: Aufguss'' * nasiono :''łac: semen :en: de: Samen'' * nitr. - nitricum - azotan * nux (''łac.'') – orzech (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). [[#top|↑]] == O == * odwar - wyciąg wodny uzyskiwany przez gotowanie twardych fragmentów ziół (np. kora, korzenie, bulwy, grube nasiona, kłącza) (zob. też [[w:Odwar|odwar]] w Wikipedii). :''łac: decoctum :en :de: Absud, Dekokt, Abkochung'' * ocet jabłkowy - dodany do naparów z niektórych ziół wzmaga ich właściwości [[Napary/Działanie#Energia|energetyzujące]], [[Napary/Działanie#Uspokojenie|uspokajające]] oraz poprawia [[Napary/Działanie#Trawienie|trawienie]] (zob. też [[w:Ocet jabłkowy|Ocet jabłkowy]] w Wikipedii). * olejek rozmarynowy - (zob. też [[w:Olejek rozmarynowy|Olejek rozmarynowy]] w Wikipedii). * olejki eteryczne - (zob. też [[w:Olejek eteryczne|Olejek eteryczne]] w Wikipedii). * oleuropeina - [[Napary/Pomoc#P|polifenole]] (zob. też [[w:Oleuropeina|Oleuropeina]] w Wikipedii). * oligomeryczne procyjanidyny (OPC) - (zob. też [[w:Procyjanidyny|procyjanidyny]] w Wikipedii). * ol. (''łac.'' oleum) - olej, olejek * owoc :''łac: fructus :en: fruit de: Frucht'' [[#top|↑]] == P == * papaweryna - [[Napary/Pomoc#A|alkaloid]] o działaniu [[Napary/Działanie#Rozkurczowe|rozkurczowym]] (zob. też [[w:Papaweryna|papaweryna]] w Wikipedii). * pączek :''łac: gemma :en: bud de: Knospe'' * pericarpium (''łac.'', ''skr.'' peric.) – owocnia (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * piperyna - (zob. też [[w:Piperyna|piperyna]] w Wikipedii). * polifenole - grupa związków organicznych, do której należą [[Napary/Pomoc#T|taniny (garbniki)]], ale obejmuje też inne związki o właściwościach [[Napary/Pomoc#P|antyoksydacyjnych (przeciwzapalnych)]] (zob. też [[w:Polifenole|polifenole]] w Wikipedii). * potas - (zob. też [[w:Potas|potas]] w Wikipedii). * przeciwutleniacze (antyoksydanty) - neutralizują nadmiar [[Napary/Pomoc#W|wolnych rodników]]. Antyoksydanty sa zawarte w [[Napary/Herbata zielona|zielonej herbacie]], [[Napary/Głóg jednoszyjkowy|głogu jednoszyjkowym]], [[Napary/Ostropest plamisty|ostropeście plamistym]] i in. (zob. też [[w:Przeciwutleniacze|przeciwutleniacze]] w Wikipedii). * pulv. (''łac.'' pulveratus) - sproszkowany [[#top|↑]] == R == * radic. (''łac.'' cum) (radicibus) - z korzeniami * radix (''łac.'', ''skr.'' rad.) – korzeń (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * rec. (''łac.'' recens) - świeży * remedium - medyczny środek zaradczy, lekarstwo (zob. też [[w:Remedium|remedium]] w Wikipedii). * res. (''łac.'' resina) - żywica * resweratrol - (zob. też [[w:Resweratrol|resweratrol]] w Wikipedii). * rhizoma (''łac.'', ''skr.'' rhiz.) – kłącze (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * rhizoma cum radicibus (''łac.'') – kłącze z korzeniami [[#top|↑]] == S == * saponiny - organiczny związek chemiczny wpływający na organizm ludzki, od leczniczego po trujący. Najczęściej występują w skórce łodyg i owoców oraz w korzeniach (zob. też [[w:Saponiny|saponiny]] w Wikipedii). * semen (''łac.'', ''skr.'' sem.) – nasiono (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * serotonina - (zob. też [[w:Serotonina|serotonina]] w Wikipedii). * sicc. (''łac.'' ssiccus(um)) - suchy * sir. (''łac.'' sirupus) - syrop * soi. (''łac.'' solutio) - roztwór * spec. (''łac.'' species) - zioła * spirit. (''łac.'' spirituosus) - alkoholowy * spir. (''łac.'' spiritus) - alkohol * spiss. (''łac.'' spissum) - gęsty* * spora (''łac.'') – zarodnik (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * scc. (''łac.'' succus) - sok * sterole - (zob. też [[w:Sterole|sterole]] w Wikipedii). * stigma (''łac.'') – znamię słupka kwiatowego (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * stipes (''łac.'') – szypułka (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). – * substancja aktywna - związek chemiczny, który odpowiada za farmakologiczne, terapeutyczne lub metaboliczne działanie zioła. * stres oksydacyjny - stan zaburzonej równowagi między produkcją [[Napary/Pomoc#W|wolnych rodników]] a zdolnością organizmu do ich neutralizacji za pomocą [[Napary/Pomoc#P|przeciwutleniaczy (antyoksydantów)]] (zob. też [[w:Stres oksydacyjny|stres oksydacyjny]] w Wikipedii). * substancja czynna → substancja aktywna * strobilus (''łac.'') – szyszka chmielu zwyczajnego (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * sulf. (''łac.'' sulfuricum) - siarczan * szyszka :''łac: strobilus :en: de: Zapfen'' [[#top|↑]] == Ś == * śluz - (zob. też [[w:Śluz roślinny|śluz roślinny]] w Wikipedii). * ściągające - obkurczające tkanki, zmniejszające przepuszczalność naczyń krwionośnych i błon komórkowych, a także wiązań białek, co prowadzi do zmniejszenia stanów zapalnych, obrzęku i krwawienia, tworząc na powierzchni ochronną warstwę. [[#top|↑]] == T == * tabl. (''łac. ''tabulettae) - tabletki * taniny (garbniki) - należą do [[Napary/Pomoc#P|polifenoli]]. W medycynie stosowane ze względu na działanie ściągające. Koagulacja białek na powierzchni [[w:Błona śluzowa|błon śluzowych]] prowadzi do powstania warstwy ochronnej, z czego wynikają właściwości [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] względem stanów zapalnych skóry i [[w:Błona śluzowa|błon śluzowych]]. Ten sam mechanizm jest odpowiedzialny za hamowanie drobnych krwawień oraz likwidację obrzmień. Garbniki mogą szkodliwie wpływać na działanie np. citalopramu w organizmie, ponieważ tworzą z nim trudno rozpuszczalne związki i przez to zmniejszają albo nawet uniemożliwiają jego działanie. Są zawarte w [[Napary/Pięciornik kurze ziele|pięciorniku kurzym]], [[Napary/Kuklik pospolity|kukliku pospolitym]], [[Napary/Szałwia lekarska|szałwii lekarskiej]], [[Napary/Borówka czarna|suszonej borówce czarnej]], [[Napary/Rzepik pospolity|rzepiku pospolitym]], [[Napary/Jeżyna fałdowana|liściach jeżyny fałdowanej]], [[Napary/Poziomka|liściach poziomki]], [[Napary/Malina właściwa|liściach maliny]], [[Napary/Herbata zielona|zielonej herbacie]], [[Napary/Herbata chińska#Herbata chińska czarna|czarna herbata]], [[Napary/Orzech włoski|orzechu włoskim]], [[Napary/Pięciornik gęsi|pięciorniku gęsim]], [[Napary/Rdest wężownik|kłączach rdestu wężownika]], [[Napary/Oczar wirginijski|korze oczaru]], [[Napary/Dąb|kora dębu]], [[Napary/Rzepik pospolity|rzepik pospolity]], [[Napary/Krameria|korzeniu kramerii (ratanhi)]] (zob. też [[w:Taniny|taniny (garbniki)]] w Wikipedii). * tart. (''łac. ''tartaricum) - winian * teina - rodzaj [[Napary/Pomoc#K|kofeiny]] pochodzący z herbaty (zob. też [[w:Kofeina|kofeina (teina)]] w Wikipedii). * telomeraza - (zob. też [[w:telomeraza|telomeraza]] w Wikipedii). * termogeniczny - m.in. wspomagający [[Napary/Działanie#Odchudzanie|odchudzanie]] poprzez zwiększanie wydzielania ciepła z ciała i podwyższenie metabolizmu (zob. też [[w:Termogeneza|Termogeneza]] w Wikipedii). * thallus (''łac.'') – plecha (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * tinct. (''łac.'' tinctura) - nalewka * tintura madre (''łac.'') - nalewka macierzysta * trójglicerydy - (zob. też [[w:Trójglicerydy|trójglicerydy]] w Wikipedii). * tryptofan - (zob. też [[w:Tryptofan|tryptofan]] w Wikipedii). * tuber (''łac.'') – bulwa (zob. też [[w:Surowiec_zielarski|Surowiec zielarski]] w Wikipedii). * tyrosol - (zob. też [[w:Tyrosol|Tyrosol]] w Wikipedii). [[#top|↑]] == U == * ung. (''łac.'' unguentum) - maść [[#top|↑]] == V == * vern. (''łac.'' vernalis) - wiosenny [[#top|↑]] == W == * wapń - (zob. też [[w:Wapń|wapń]] w Wikipedii). * witamina A - zawarta w niektórych ziołach, wrażliwa na obróbkę termiczną (zob. też [[w:Witamina A|witamina A]] w Wikipedii). * witamina B - zawarta w niektórych ziołach, wrażliwa na obróbkę termiczną (zob. też [[w:Witamina B|witamina B]] w Wikipedii). * witamina B1 - zawarta w niektórych ziołach, wrażliwa na obróbkę termiczną (zob. też [[w:Witamina B|witamina B1]] w Wikipedii). * witamina B2 - zawarta w niektórych ziołach, wrażliwa na obróbkę termiczną (zob. też [[w:Witamina B|witamina B2]] w Wikipedii). * witamina B6 - zawarta w niektórych ziołach, wrażliwa na obróbkę termiczną (zob. też [[w:Witamina B|witamina B2]] w Wikipedii). * witamina C - zawarta w niektórych ziołach, wrażliwa na obróbkę termiczną (zob. też [[w:Witamina A|witamina C]] w Wikipedii). * witamina D - zawarta w niektórych ziołach, wrażliwa na obróbkę termiczną (zob. też [[w:Witamina A|witamina D]] w Wikipedii). * witamina E - zawarta w niektórych ziołach, wrażliwa na obróbkę termiczną (zob. też [[w:Witamina A|witamina E]] w Wikipedii). * witamina K - zawarta w niektórych ziołach, wrażliwa na obróbkę termiczną (zob. też [[w:Witamina K|witamina K]] w Wikipedii). * wolne rodniki - szkodliwe cząstki, których nadmiar prowadzi do [[Napary/Pomoc#S|stresu oksydacyjnego]]. Mogą przyspieszać proces starzenia i rozwój chorób. Powstają w organizmie w sposób naturalny, ale też przez palenie papierosów, zanieczyszczenie środowiska itp. Neutralizują je [[Napary/Pomoc#P|przeciwutleniacze (antyoksydanty)]]. (zob. też [[w:Wolne rodniki|wolne rodniki]] w Wikipedii). * wyciąg - zagęszczony lub wysuszony sok u surowca roślinnego lub zwierzęcego, otrzymywany poprzez wytrawienie surowca rozpuszczalnikiem, na przykład wodą bądź etanolem (zob. też [[w:Wyciąg|wyciąg]] w Wikipedii). :''łac: :en :de: Auszug'' * wywar - (zob. też [[w:Odwar|wywar]] w Wikipedii). [[#top|↑]] == Z == * ziele - (zob. też [[w:Ziele|ziele]] w Wikipedii). :''łac: herba :en: herb de: Heilkraut'' * zioła jednorodne - zioła jednego gatunku (w przeciwieństwie do mieszanek ziołowych). * znamię :''łac: stigma :en: stigma de: Narbe'' [[#top|↑]] == Ż == [[#top|↑]] <noinclude>{{Nawigacja | 1 = Napary | 2 = | 3 = }}</noinclude> rk9bicsnzblup3ztondv1j5fhoootja Napary/Działanie 0 61358 541014 540579 2026-04-27T17:21:59Z EdytaT 2664 /* Przeciwzapalne */ 541014 wikitext text/x-wiki {{Podrozdział|[[Napary]]|Działanie}} {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} {{SpisAlfabetyczny}} == A == == Afrodyzjak == * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Alergie == Ulgę przy alergiach mogą przynieść napary z ziół zawierających substancje redukujące [[Napary/Pomoc#H|histaminę]]. Należy przy tym koniecznie zwrócić uwagę, że niektóre z ziół ogólnie zalecanych przeciw alergiom same mogą być ich przyczyną u osób uczulonych na ten rodzaj roślin! * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Głóg dwuszyjkowy|Głóg dwuszyjkowy]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Lakownica żółtawa|Lakownica żółtawa (Reishi, Ling Zhi)]] == Alzheimer == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Anoreksja == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] == Antydepresant == * → [[Napary/Działanie#Depresja|Depresja]] == Antyoksydant == * → [[Napary/Działanie#Przeciwutleniacze|Przeciwutleniacze]] == Anty-aging == Dla seniorów prozdrowotnie działają głównie zioła o właściwościach [[Napary/Pomoc#P|antyoksydacyjnych]], neutralizujących [[Napary/Pomoc#W|wolne rodniki]], wspierających produkcję [[Napary/Pomoc#K|kolagenu]] oraz regenerujących komórki. * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Róża dzika|Róża dzika]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] == Apetyt == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] * → [[Napary/Działanie#Odchudzanie|Nadmierny apetyt]] == Artretyzm == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Artroza == * → [[Napary/Działanie#Stawy|Stawy]] == Astma == * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] [[#top|↑]] == B == == Bakteriobójcze == * → [[Napary/Działanie#Przeciwbakteryjne|Przeciwbakteryjne]] == Bezsenność == * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Chmiel|Chmiel]] jest często kojarzony z uczuciem odprężenia i zmęczenia i może pomóc przespać noc. * Mieszanka z [[Napary/Rumianek pospolity|rumianku]], [[Napary/Pokrzywa|pokrzywy]], [[Napary/Koper włoski|kopru włoskiego]], [[Napary/Lawenda wąskolistna|lawendy]] i [[Napary/Mięta pieprzowa|mięty]] == Biegunka == Przy biegunce pomocne są substancje roślinne działające [[Napary/Działanie#Ściągające|ściągająco]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] i [[Napary/Działanie#Przeciwskurczowe|przeciwskurczowo]] oraz zawierające [[Napary/Pomoc#G|garbniki]]. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Jeżyna fałdowana|Jeżyna fałdowana]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Borelioza == Do wspomagania terapii boreliozy wykorzystuje się zioła, które mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] oraz wzmacniające [[Napary/Działanie#Odporność|układ odpornościowy]]. * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] * [[Napary/Szczeć pospolita|Szczeć pospolita]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] * [[Napary/Cryptolepis sanguinolenta|Cryptolepis sanguinolenta]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Brodziuszka wiechowata|Brodziuszka wiechowata]] (Andrographis paniculata) * [[Napary/Traganek błoniasty|Traganek błoniasty]] * [[Napary/Kolcorośl lecznicza|Kolcorośl lecznicza (Sarsaparilla)]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] (czosnek) == Ból brzucha == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] == Ból gardła == * [[Napary/Szałwia lekarska|Szałwia lekarska]] == Ból głowy == * → [[Napary/Działanie#Migrena|Migrena]] == Ból zęba == * [[Napary/Goździki|Goździki]] == Ból żołądka == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] == Bóle menstruacyjne == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] == Brak apetytu == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Traganek błoniasty|Traganek błoniasty]] [[#top|↑]] == C == == Choroby neurodegeneracyjne == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Cera == * → [[Napary/Działanie#Skóra|Skóra]] == Cholesterol == * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Chrypka == * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Cukrzyca == * [[Napary/Morwa biała|Morwa biała]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Gymnema sylvestre|Gymnema sylvestre (gumnar)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] [[#top|↑]] == D == == Demencja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Depresja == Niektóre zioła pomagają hamować rozwój depresji. * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Melisa lekarska|Melisa lekarska]] == Detoksykacja == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Dezorientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Dna moczanowa == * [[Napary/Perz właściwy|Perz właściwy]] == Dostarczanie witamin i minerałów == * większość naparów == Drogi moczowe == Przy dolegliwościach pęcherza czy cewki moczowej trzeba przede wszystkim zwiększyć ilość wypijanych płynów. Częste oddawanie moczu sprzyja wypłukiwaniu bakterii z dróg moczowych. Należy pić co najmniej 2,5-3 litrów wody dziennie. Ponadto można sięgnąć po herbatki ziołowe o działaniu [[Napary/Działanie#Moczopędne|moczopędnym]], [[Napary/Działanie#przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbakteryjne|antybakteryjnym]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Mącznica lekarska|Mącznica lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] == Drogi oddechowe == Na dolegliwości dróg oddechowych polecane są napary z ziół o działaniu [[Napary/Działanie#Wykrztuszanie|wykrztuśnym]], rozkurczającym oskrzela i przeciwzapalnym. * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Podbiał pospolity|Podbiał pospolity]] * [[Napary/Pierwiosnek lekarski|Pierwiosnek lekarski]] * [[Napary/Eukaliptus gałkowy|Eukaliptus gałkowy]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] * [[Napary/Jasnota purpurowa|Jasnota purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Drogi żółciowe == * → [[Napary/Działanie#Żółciopędne|Żółciopędne]] == Dyspepsja == * → [[Napary/Działanie#Trawienie|Trawienie]] == Dziąsła == * → [[Napary/Działanie#Jama ustna|Jama ustna]] [[#top|↑]] == E == == Energia == Napoje zawierające [[Napary/Pomoc#K|kofeinę]] działają energetyzująco. * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Matcha|Matcha]] * [[Napary/Sencha|Sencha]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Ulung|Ulung]] * [[Napary/Herbata chińska#Herbata chińska biała|Herbata biała]] * [[Napary/Imbir lekarski|Imbir lekarski]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] [[#top|↑]] == F == == Fotouczulające == {{Uwaga|Ziół fotouczulających nie należy pić latem!}} Zioła fotouczulające w połączeniu z działaniem promieni słonecznych na skórę mogą powodować swędzącą wysypkę. * [[Napary/Arnika górska|Arnika górska]] * [[Napary/Nawłoć pospolita|Nawłoć pospolita]] * [[Napary/Słonecznik zwyczajny|Słonecznik zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wrotycz pospolity|Wrotycz pospolity]] * [[Napary/Bylica pospolita|Bylica pospolita]] * [[Napary/Aminek egipski|Aminek egipski]] (fototoksyczne) * [[Napary/Aminek wielki|Aminek wielki]] (fototoksyczne) * [[Napary/Dzięgiel litwor|Dzięgiel litwor]] (fototoksyczne); * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] (fototoksyczne) * [[Napary/Ruta zwyczajna|Ruta zwyczajna]] (fototoksyczne) == G == == Gorączka == * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == H == == Hemoroidy == * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == I == == Infekcja dróg moczowych == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Inkontynencja == * [[Napary/Rooibos|Rooibos]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Irygacje == * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == J == == Jama ustna == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Tasznik pospolity|Tasznik pospolity]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] [[#top|↑]] == K == == Kac == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Kamica nerkowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kamica żółciowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kaszel == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Katar sienny == * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Koncentracja == * [[Napary/Gojnik|Gojnik]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Przetacznik leśny|Przetacznik leśny]] * [[Napary/Werbena pospolita|Werbena pospolita]] zobacz też: * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Kości == * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Epimedium wielkokwiatowe|Epimedium wielkokwiatowe]] == Krążenie == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] == Krwawienie menstruacyjne == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Krwawienie z nosa == * [[Napary/Tasznik pospolity|Tasznik pospolity]] [[#top|↑]] == L == == Laktacja == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Lęk == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] [[#top|↑]] == M == == Mdłości == * → [[Napary/Działanie#Nudności|Nudności]] == Menopauza == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Menstruacja == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Metabolizm == * → [[Napary/Działanie#Przemiana materii|Przemiana materii]] == Miażdżyca == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] == Miesiączka == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Mięśnie == * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] == Migrena == Herbatki ziołowe działają na ból głowy przez kombinacje składników [[Napary/Działanie#Przeciwbólowe|przeciwbólowych]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnych]] i [[Napary/Działanie#Rozkurczowe|rozkurczowych]]. * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Goździki|Goździki]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] * [[Napary/Ostryż długi|Ostryż dług (kurkuma)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * '''Uwaga:''' napary z [[Napary/Miłorząb dwuklapowy|miłorzębu]], [[Napary/Żeń-szeń|żeń-szenia]], [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] i [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] mogą wzmóc ból głowy. == Moczopędne == Pijąc herbatki o działaniu moczopędnym (diuretycznym) trzeba jednocześnie pić wystarczającą ilość wody, by uzupełniać wypłukiwane minerały! Dłuższe picie naparów moczopędnych może prowadzić np. do utraty [[Napary/Pomoc#P|potasu]] z organizmu. Warto więc kontrolować jego poziom we krwi. Właściwości moczopędne ziół pomagają też usuwać [[Napary/Pomoc#K|kwas moczowy]] powodujący artretyzm ([[Napary/Działanie#Dna moczanowa|dna moczanowa]]) oraz wspierają [[Napary/Działanie#Odchudzanie|odchudzanie]]. * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Lubczyk ogrodowy|Lubczyk ogrodowy]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] [[#top|↑]] == N == == Naczynia krwionośne == * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] == Nadciśnienie == * [[Napary/Serdecznik pospolity|Serdecznik pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Nadmierny apetyt == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Nadwaga == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Napięcie przedmiesiączkowe == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Napotne == Zioła działające napotnie pomagają w obniżeniu [[Napary/Działanie#Gorączka|gorączki]] i łagodzeniu objawów [[Napary/Działanie#Przeziębienie|przeziębienia]]. * [[Napary/Lipa drobnolistna|Lipa drobnolistna]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Malina właściwa|Malina właściwa]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Nasiadówki == * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] == Nastrój == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Nauka == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Nawadnianie organizmu == * wszystkie napary == Nerki == Zioła [[Napary/Działanie#Moczopędne|moczopędne]] wspomagają pracę nerek. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Perz właściwy|Perz właściwy]] == Nerwobóle == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Imbir lekarski|Imbir lekarski]] == Nerwowość == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lipa|Kwiaty lipy]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Neurodegeneracja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Neuropatia == * → [[Napary/Działanie#Nerwobóle|Nerwobóle]] == Niestrawność == * → [[Napary/Działanie#Trawienie|Trawienie]] == Nieświeży oddech == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] == Nietrzymanie moczu == * → [[Napary/Działanie#Inkontynencja|Inkontynencja]] == Nieżyt żołądka == * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rzewień_palczasty|Rzewień palczasty (rabarbar dłoniasty))]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Nocne poty == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Nudności == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Mieszanki#Napar z anyżu, kopru włoskiego i kminku|Mieszanka z anyżu, kopru włoskiego i kminku]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] [[#top|↑]] == O == == Odchudzanie == Składniki ziół i roślin wspomagających odchudzanie są różnorodne: stymulujące spalanie tkanki tłuszczowej, oczyszczające organizm z [[Napary/Działanie#Oczyszczanie z toksyn|toksyn]], [[Napary/Działanie#moczopędne|moczopędne]], pobudzające proces [[Napary/Działanie#Trawienie|trawienia]], redukujące apetyt i chęć podjadania. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Rooibos|Rooibos]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty]], [[Napary/Pokrzywa|pokrzywy]] i [[Napary/Mniszek lekarski|mniszka]] == Oczyszczanie z toksyn == Detoksykacja organizmu (detoks) to proces fizjologiczny, w którym organizm (głównie wątroba, nerki, skóra i płuca) usuwa zbędne produkty przemiany materii oraz neutralizuje szkodliwe substancje. Stosowanie odpowiednich ziół wspiera np. detoksykację wątroby. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] – oczyszcza organizm z toksyn, działa odtruwająco i lekko moczopędnie, stymuluje metabolizm. * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Odporność == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Odrobaczanie == * → [[Napary/Działanie#Pasożyty|Pasożyty]] == Orientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Oskrzela == * → [[Napary/Działanie#Drogi oddechowe|oddechowe]] == Osteoporoza == * → [[Napary/Działanie#Kości|Kości]] == Otępienie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] [[#top|↑]] == P == == Pamięć == Stuprocentowy sok z pomarańczy prawdopodobnie redukuje ryzyko pogarszania pamięci o 36%. * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Pasożyty == * [[Napary/Bylica piołun|Bylica piołun (piołun)]] * [[Napary/Goździki|Goździki]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] == Paznokcie == Na dobrą strukturę oraz wygląd paznokci wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Pęcherz moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Płukanie jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Podagra == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Prostata == * [[Napary/Pokrzywa|Pokrzywa]] == Przeciwbólowe == * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwbakteryjne == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwgrzybicze == * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwkaszlowe == * → [[Napary/Działanie#Kaszel|Kaszel]] == Przeciwlękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Przeciwnowotworowe == == Przeciwskurczowe == * [[Napary/Rozmaryn|Rozmaryn]] == Przeciwutleniacze == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwwirusowe == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Przeciwzapalne == Miara stanu zapalnego jest np. poziom enzymu wskazującego na taki stan. * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Liście laurowe|Liście laurowe]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Przeczyszczające == * [[Napary/Kruszyna pospolita|Kruszyna pospolita]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] == Przekwitanie == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Niepokalanek pospolity|Niepokalanek pospolity]] * [[Napary/Rabarbar ogrodowy|Rabarbar ogrodowy]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Malwa czarna|malwy czarnej]], [[Napary/Jasnota biała|jasnoty białej]], [[Napary/Serdecznik pospolity|serdecznika pospolitego]], [[Napary/Chmiel zwyczajny|chmielu zwyczajnego]], [[Napary/Melisa lekarska|melisy lekarskiej]] i [[Napary/Rumianek pospolity|rumianku pospolitego]] == Przemiana materii == * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Perz właściwy|Perz właściwy]] * Mieszanka z [[Napary/Pu-erh|pu-erh]], [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]] i [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] == Przeziębienie == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == R == == Regeneracja organizmu == * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Liście laurowe|Liście laurowe]] == Relaks == * → [[Napary/Działanie#Uspokojenie|Uspokojenie]] == Reumatyzm == * [[Napary/Wiązówka błotna|Wiązówka błotna]] == Rozkojarzenie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Rozkurczowe == Działanie rozkurczowe (rozluźniające) naparów dotyczy przede wszystkim mięśni gładkich przewodu pokarmowego (żołądka, jelit, dróg żółciowych). Pomaga to rozluźnić perystaltykę jelit i poprawić trawienie. Ponadto działa na mięśnie układu moczowego i macicy. * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty pieprzowej]], [[Napary/Rumianek pospolity|rumianku pospolitego]] i [[Napary/Melisa lekarska|melisy lekarskiej]] zobacz też: * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] [[#top|↑]] == S == == Samopoczucie == * → [[Napary/Działanie#Nastrój|Nastrój]] == Sen == * → [[Napary/Działanie#Bezsenność|Bezsenność]] == Serce == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Serdecznik pospolity|serdecznika pospolitego]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum (jiaogulan, ziele wieczności)]] == Skóra == Starzeniu się skory przeciwdziałają napary z ziół zawierających [[Napary/Pomoc#P|antyoksydanty]]. Na dobrą strukturę oraz wygląd skóry wpływają m. in. zioła bogate w [[Napary/Pomoc#K|krzem]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Skupienie == * → [[Napary/Działanie#Sprawność umysłowa||Sprawność umysłowa|]] == Skurcz żołądka == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] zobacz też: * → [[Napary/Działanie#Ból żołądka|Ból żołądka]] * → [[Napary/Działanie#Trawienie|Trawienie]] * → Działanie [[Napary/Działanie#Rozkurczowe|rozkurczowe]] == Sprawność umysłowa == [[Napary/Herbata zielona|Herbata zielona]] i [[Napary/Herbata chińska#Herbata chińska czarna|czarna]] prawdopodobnie mogą obniżyć ryzyko demencji o 16%. Wspomagają pracę mózgu, ponieważ zawierają [[Napary/Pomoc#F|flawonoidy]] i [[Napary/Pomoc#L|L-teaninę]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Śnieżyczka przebiśnieg|Śnieżyczka przebiśnieg]] * [[Napary/Piwonia biała|Piwonia biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] == Stan zapalny jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Stany lękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Stawy == Przy chorobach zwyrodnieniowych stawów pomagają zioła działające [[Napary/Działanie#Przeciwzapalnie|przeciwzapalnie]], [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]] oraz [[Napary/Działanie#Przeciwutleniacze|przeciwutleniająco]]. Wspierająco działają również zioła zawierające [[Napary/Pomoc#K|krzemionkę]]. * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Rdest ptasi|Rdest ptasi]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Czarci pazur|Czarci pazur]] * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Stres == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Melisa lekarska|Melisa lekarska]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] [[#top|↑]] == Ś == == Ściągające == Substancje działające ściągająco (kontrakcyjnie, adstryngentnie) pomagają zwężać pory, redukując obrzęki i jednocześnie oczyszczając skórę. Działają również lekko przeciwzapalnie. * [[Napary/Borówka brusznica|Borówka brusznica]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Dąb omszony|Dąb omszony]]<ref>[https://leksykon.com.pl/tag/dzialanie-sciagajace/ Leksykon]</ref><ref>[https://leksykon.com.pl/leksykon-substancji/dab-omszony/interakcje/ Leksykon]</ref> * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] [[#top|↑]] == T == == Toksyny == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Trawienie == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Pu-erh|Pu-erh]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Melisa lekarska|melisy lekarskiej]], [[Napary/Mięta pieprzowa|mięty pieprzowej]] i [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] * Mieszanka z [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] zobacz też: * → [[Napary/Działanie#Nieżyt żołądka|Nieżyt żołądka]] * → [[Napary/Działanie#Nudności|Nudności]] * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] * → [[Napary/Działanie#Wzdęcia|Wzdęcia]] * → [[Napary/Działanie#Zgaga|Zgaga]] == Trądzik == === Trądzik młodzieńczy === Najskuteczniejsze zioła na trądzik młodzieńczy mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]] i [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]]. Terapie ziołowe nie od razu przynoszą widoczne rezultaty. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Łopian większy|Łopian większy]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Perz właściwy|Perz właściwy]] === Trądzik różowaty === * [[Napary/Róża dzika|Róża dzika]] == Trzustka == Prawidłową prace trzustki wspomagają napary z roślin zawierających [[Napary/Pomoc#G|gorycze (substancje gorzkie)]]. * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Goryczka żółta|Goryczka żółta]] [[#top|↑]] == U == == Uderzenia gorąca == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Układ krwionośny == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] == Układ moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Uspokojenie == * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Gojnik|Gojnik]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] * Mieszanka z [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] == Uszczelniające == * [[Napary/Pokrzywa|Pokrzywa]] [[#top|↑]] == W == == Wątroba == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Goryczka żółta|Goryczka żółta]] == Włosy == Na dobrą strukturę oraz wygląd włosów wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Wrzody żołądka == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Wykrztuszanie == * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Wymioty == * → [[Napary/Działanie#Nudności|Nudności]] == Wypadanie włosów == * → [[Napary/Działanie#Włosy|Włosy]] == Wzdęcia == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Wzmacnianie naczyń krwionośnych == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] [[#top|↑]] == Z == == Zapalenie oskrzeli == * → [[Napary/Działanie#Oskrzela|Oskrzela]] == Zapalenie pęcherza == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Zapalenie stawów == * → [[Napary/Działanie#Stawy|Stawy]] == Zaparcia == * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zgaga == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Babka lancetowata|Babka lancetowata]] * Mieszanka z [[Napary/Prawoślaz lekarski|prawoślazu lekarskiego]] i [[Napary/Rdest wielokwiatowy|rdestu wielokwiatowego]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zmęczenie == * → [[Napary/Działanie#Energia|Energia]] [[#top|↑]] == Ż == == Żółciopędne == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Brzoza|Brzoza]] [[#top|↑]] == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> j6aozz8b2pg30gqko28m7ccstknntlk 541015 541014 2026-04-27T17:23:10Z EdytaT 2664 /* Przeciwzapalne */ 541015 wikitext text/x-wiki {{Podrozdział|[[Napary]]|Działanie}} {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} {{SpisAlfabetyczny}} == A == == Afrodyzjak == * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Alergie == Ulgę przy alergiach mogą przynieść napary z ziół zawierających substancje redukujące [[Napary/Pomoc#H|histaminę]]. Należy przy tym koniecznie zwrócić uwagę, że niektóre z ziół ogólnie zalecanych przeciw alergiom same mogą być ich przyczyną u osób uczulonych na ten rodzaj roślin! * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Głóg dwuszyjkowy|Głóg dwuszyjkowy]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Lakownica żółtawa|Lakownica żółtawa (Reishi, Ling Zhi)]] == Alzheimer == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Anoreksja == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] == Antydepresant == * → [[Napary/Działanie#Depresja|Depresja]] == Antyoksydant == * → [[Napary/Działanie#Przeciwutleniacze|Przeciwutleniacze]] == Anty-aging == Dla seniorów prozdrowotnie działają głównie zioła o właściwościach [[Napary/Pomoc#P|antyoksydacyjnych]], neutralizujących [[Napary/Pomoc#W|wolne rodniki]], wspierających produkcję [[Napary/Pomoc#K|kolagenu]] oraz regenerujących komórki. * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Róża dzika|Róża dzika]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] == Apetyt == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] * → [[Napary/Działanie#Odchudzanie|Nadmierny apetyt]] == Artretyzm == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Artroza == * → [[Napary/Działanie#Stawy|Stawy]] == Astma == * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] [[#top|↑]] == B == == Bakteriobójcze == * → [[Napary/Działanie#Przeciwbakteryjne|Przeciwbakteryjne]] == Bezsenność == * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Chmiel|Chmiel]] jest często kojarzony z uczuciem odprężenia i zmęczenia i może pomóc przespać noc. * Mieszanka z [[Napary/Rumianek pospolity|rumianku]], [[Napary/Pokrzywa|pokrzywy]], [[Napary/Koper włoski|kopru włoskiego]], [[Napary/Lawenda wąskolistna|lawendy]] i [[Napary/Mięta pieprzowa|mięty]] == Biegunka == Przy biegunce pomocne są substancje roślinne działające [[Napary/Działanie#Ściągające|ściągająco]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] i [[Napary/Działanie#Przeciwskurczowe|przeciwskurczowo]] oraz zawierające [[Napary/Pomoc#G|garbniki]]. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Jeżyna fałdowana|Jeżyna fałdowana]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Borelioza == Do wspomagania terapii boreliozy wykorzystuje się zioła, które mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] oraz wzmacniające [[Napary/Działanie#Odporność|układ odpornościowy]]. * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] * [[Napary/Szczeć pospolita|Szczeć pospolita]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] * [[Napary/Cryptolepis sanguinolenta|Cryptolepis sanguinolenta]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Brodziuszka wiechowata|Brodziuszka wiechowata]] (Andrographis paniculata) * [[Napary/Traganek błoniasty|Traganek błoniasty]] * [[Napary/Kolcorośl lecznicza|Kolcorośl lecznicza (Sarsaparilla)]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] (czosnek) == Ból brzucha == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] == Ból gardła == * [[Napary/Szałwia lekarska|Szałwia lekarska]] == Ból głowy == * → [[Napary/Działanie#Migrena|Migrena]] == Ból zęba == * [[Napary/Goździki|Goździki]] == Ból żołądka == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] == Bóle menstruacyjne == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] == Brak apetytu == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Traganek błoniasty|Traganek błoniasty]] [[#top|↑]] == C == == Choroby neurodegeneracyjne == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Cera == * → [[Napary/Działanie#Skóra|Skóra]] == Cholesterol == * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Chrypka == * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Cukrzyca == * [[Napary/Morwa biała|Morwa biała]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Gymnema sylvestre|Gymnema sylvestre (gumnar)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] [[#top|↑]] == D == == Demencja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Depresja == Niektóre zioła pomagają hamować rozwój depresji. * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Melisa lekarska|Melisa lekarska]] == Detoksykacja == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Dezorientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Dna moczanowa == * [[Napary/Perz właściwy|Perz właściwy]] == Dostarczanie witamin i minerałów == * większość naparów == Drogi moczowe == Przy dolegliwościach pęcherza czy cewki moczowej trzeba przede wszystkim zwiększyć ilość wypijanych płynów. Częste oddawanie moczu sprzyja wypłukiwaniu bakterii z dróg moczowych. Należy pić co najmniej 2,5-3 litrów wody dziennie. Ponadto można sięgnąć po herbatki ziołowe o działaniu [[Napary/Działanie#Moczopędne|moczopędnym]], [[Napary/Działanie#przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbakteryjne|antybakteryjnym]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Mącznica lekarska|Mącznica lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] == Drogi oddechowe == Na dolegliwości dróg oddechowych polecane są napary z ziół o działaniu [[Napary/Działanie#Wykrztuszanie|wykrztuśnym]], rozkurczającym oskrzela i przeciwzapalnym. * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Podbiał pospolity|Podbiał pospolity]] * [[Napary/Pierwiosnek lekarski|Pierwiosnek lekarski]] * [[Napary/Eukaliptus gałkowy|Eukaliptus gałkowy]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] * [[Napary/Jasnota purpurowa|Jasnota purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Drogi żółciowe == * → [[Napary/Działanie#Żółciopędne|Żółciopędne]] == Dyspepsja == * → [[Napary/Działanie#Trawienie|Trawienie]] == Dziąsła == * → [[Napary/Działanie#Jama ustna|Jama ustna]] [[#top|↑]] == E == == Energia == Napoje zawierające [[Napary/Pomoc#K|kofeinę]] działają energetyzująco. * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Matcha|Matcha]] * [[Napary/Sencha|Sencha]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Ulung|Ulung]] * [[Napary/Herbata chińska#Herbata chińska biała|Herbata biała]] * [[Napary/Imbir lekarski|Imbir lekarski]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] [[#top|↑]] == F == == Fotouczulające == {{Uwaga|Ziół fotouczulających nie należy pić latem!}} Zioła fotouczulające w połączeniu z działaniem promieni słonecznych na skórę mogą powodować swędzącą wysypkę. * [[Napary/Arnika górska|Arnika górska]] * [[Napary/Nawłoć pospolita|Nawłoć pospolita]] * [[Napary/Słonecznik zwyczajny|Słonecznik zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wrotycz pospolity|Wrotycz pospolity]] * [[Napary/Bylica pospolita|Bylica pospolita]] * [[Napary/Aminek egipski|Aminek egipski]] (fototoksyczne) * [[Napary/Aminek wielki|Aminek wielki]] (fototoksyczne) * [[Napary/Dzięgiel litwor|Dzięgiel litwor]] (fototoksyczne); * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] (fototoksyczne) * [[Napary/Ruta zwyczajna|Ruta zwyczajna]] (fototoksyczne) == G == == Gorączka == * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == H == == Hemoroidy == * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == I == == Infekcja dróg moczowych == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Inkontynencja == * [[Napary/Rooibos|Rooibos]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Irygacje == * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == J == == Jama ustna == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Tasznik pospolity|Tasznik pospolity]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] [[#top|↑]] == K == == Kac == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Kamica nerkowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kamica żółciowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kaszel == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Katar sienny == * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Koncentracja == * [[Napary/Gojnik|Gojnik]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Przetacznik leśny|Przetacznik leśny]] * [[Napary/Werbena pospolita|Werbena pospolita]] zobacz też: * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Kości == * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Epimedium wielkokwiatowe|Epimedium wielkokwiatowe]] == Krążenie == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] == Krwawienie menstruacyjne == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Krwawienie z nosa == * [[Napary/Tasznik pospolity|Tasznik pospolity]] [[#top|↑]] == L == == Laktacja == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Lęk == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] [[#top|↑]] == M == == Mdłości == * → [[Napary/Działanie#Nudności|Nudności]] == Menopauza == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Menstruacja == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Metabolizm == * → [[Napary/Działanie#Przemiana materii|Przemiana materii]] == Miażdżyca == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] == Miesiączka == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Mięśnie == * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] == Migrena == Herbatki ziołowe działają na ból głowy przez kombinacje składników [[Napary/Działanie#Przeciwbólowe|przeciwbólowych]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnych]] i [[Napary/Działanie#Rozkurczowe|rozkurczowych]]. * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Goździki|Goździki]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] * [[Napary/Ostryż długi|Ostryż dług (kurkuma)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * '''Uwaga:''' napary z [[Napary/Miłorząb dwuklapowy|miłorzębu]], [[Napary/Żeń-szeń|żeń-szenia]], [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] i [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] mogą wzmóc ból głowy. == Moczopędne == Pijąc herbatki o działaniu moczopędnym (diuretycznym) trzeba jednocześnie pić wystarczającą ilość wody, by uzupełniać wypłukiwane minerały! Dłuższe picie naparów moczopędnych może prowadzić np. do utraty [[Napary/Pomoc#P|potasu]] z organizmu. Warto więc kontrolować jego poziom we krwi. Właściwości moczopędne ziół pomagają też usuwać [[Napary/Pomoc#K|kwas moczowy]] powodujący artretyzm ([[Napary/Działanie#Dna moczanowa|dna moczanowa]]) oraz wspierają [[Napary/Działanie#Odchudzanie|odchudzanie]]. * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Lubczyk ogrodowy|Lubczyk ogrodowy]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] [[#top|↑]] == N == == Naczynia krwionośne == * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] == Nadciśnienie == * [[Napary/Serdecznik pospolity|Serdecznik pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Nadmierny apetyt == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Nadwaga == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Napięcie przedmiesiączkowe == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Napotne == Zioła działające napotnie pomagają w obniżeniu [[Napary/Działanie#Gorączka|gorączki]] i łagodzeniu objawów [[Napary/Działanie#Przeziębienie|przeziębienia]]. * [[Napary/Lipa drobnolistna|Lipa drobnolistna]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Malina właściwa|Malina właściwa]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Nasiadówki == * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] == Nastrój == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Nauka == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Nawadnianie organizmu == * wszystkie napary == Nerki == Zioła [[Napary/Działanie#Moczopędne|moczopędne]] wspomagają pracę nerek. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Perz właściwy|Perz właściwy]] == Nerwobóle == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Imbir lekarski|Imbir lekarski]] == Nerwowość == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lipa|Kwiaty lipy]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Neurodegeneracja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Neuropatia == * → [[Napary/Działanie#Nerwobóle|Nerwobóle]] == Niestrawność == * → [[Napary/Działanie#Trawienie|Trawienie]] == Nieświeży oddech == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] == Nietrzymanie moczu == * → [[Napary/Działanie#Inkontynencja|Inkontynencja]] == Nieżyt żołądka == * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rzewień_palczasty|Rzewień palczasty (rabarbar dłoniasty))]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Nocne poty == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Nudności == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Mieszanki#Napar z anyżu, kopru włoskiego i kminku|Mieszanka z anyżu, kopru włoskiego i kminku]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] [[#top|↑]] == O == == Odchudzanie == Składniki ziół i roślin wspomagających odchudzanie są różnorodne: stymulujące spalanie tkanki tłuszczowej, oczyszczające organizm z [[Napary/Działanie#Oczyszczanie z toksyn|toksyn]], [[Napary/Działanie#moczopędne|moczopędne]], pobudzające proces [[Napary/Działanie#Trawienie|trawienia]], redukujące apetyt i chęć podjadania. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Rooibos|Rooibos]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty]], [[Napary/Pokrzywa|pokrzywy]] i [[Napary/Mniszek lekarski|mniszka]] == Oczyszczanie z toksyn == Detoksykacja organizmu (detoks) to proces fizjologiczny, w którym organizm (głównie wątroba, nerki, skóra i płuca) usuwa zbędne produkty przemiany materii oraz neutralizuje szkodliwe substancje. Stosowanie odpowiednich ziół wspiera np. detoksykację wątroby. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] – oczyszcza organizm z toksyn, działa odtruwająco i lekko moczopędnie, stymuluje metabolizm. * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Odporność == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Odrobaczanie == * → [[Napary/Działanie#Pasożyty|Pasożyty]] == Orientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Oskrzela == * → [[Napary/Działanie#Drogi oddechowe|oddechowe]] == Osteoporoza == * → [[Napary/Działanie#Kości|Kości]] == Otępienie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] [[#top|↑]] == P == == Pamięć == Stuprocentowy sok z pomarańczy prawdopodobnie redukuje ryzyko pogarszania pamięci o 36%. * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Pasożyty == * [[Napary/Bylica piołun|Bylica piołun (piołun)]] * [[Napary/Goździki|Goździki]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] == Paznokcie == Na dobrą strukturę oraz wygląd paznokci wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Pęcherz moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Płukanie jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Podagra == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Prostata == * [[Napary/Pokrzywa|Pokrzywa]] == Przeciwbólowe == * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwbakteryjne == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwgrzybicze == * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwkaszlowe == * → [[Napary/Działanie#Kaszel|Kaszel]] == Przeciwlękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Przeciwnowotworowe == == Przeciwskurczowe == * [[Napary/Rozmaryn|Rozmaryn]] == Przeciwutleniacze == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwwirusowe == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Przeciwzapalne == Miarą stanu zapalnego jest np. poziom enzymu wskazującego na taki stan. * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] == Przeczyszczające == * [[Napary/Kruszyna pospolita|Kruszyna pospolita]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] == Przekwitanie == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Niepokalanek pospolity|Niepokalanek pospolity]] * [[Napary/Rabarbar ogrodowy|Rabarbar ogrodowy]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Malwa czarna|malwy czarnej]], [[Napary/Jasnota biała|jasnoty białej]], [[Napary/Serdecznik pospolity|serdecznika pospolitego]], [[Napary/Chmiel zwyczajny|chmielu zwyczajnego]], [[Napary/Melisa lekarska|melisy lekarskiej]] i [[Napary/Rumianek pospolity|rumianku pospolitego]] == Przemiana materii == * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Perz właściwy|Perz właściwy]] * Mieszanka z [[Napary/Pu-erh|pu-erh]], [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]] i [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] == Przeziębienie == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == R == == Regeneracja organizmu == * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Liście laurowe|Liście laurowe]] == Relaks == * → [[Napary/Działanie#Uspokojenie|Uspokojenie]] == Reumatyzm == * [[Napary/Wiązówka błotna|Wiązówka błotna]] == Rozkojarzenie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Rozkurczowe == Działanie rozkurczowe (rozluźniające) naparów dotyczy przede wszystkim mięśni gładkich przewodu pokarmowego (żołądka, jelit, dróg żółciowych). Pomaga to rozluźnić perystaltykę jelit i poprawić trawienie. Ponadto działa na mięśnie układu moczowego i macicy. * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty pieprzowej]], [[Napary/Rumianek pospolity|rumianku pospolitego]] i [[Napary/Melisa lekarska|melisy lekarskiej]] zobacz też: * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] [[#top|↑]] == S == == Samopoczucie == * → [[Napary/Działanie#Nastrój|Nastrój]] == Sen == * → [[Napary/Działanie#Bezsenność|Bezsenność]] == Serce == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Serdecznik pospolity|serdecznika pospolitego]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum (jiaogulan, ziele wieczności)]] == Skóra == Starzeniu się skory przeciwdziałają napary z ziół zawierających [[Napary/Pomoc#P|antyoksydanty]]. Na dobrą strukturę oraz wygląd skóry wpływają m. in. zioła bogate w [[Napary/Pomoc#K|krzem]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Skupienie == * → [[Napary/Działanie#Sprawność umysłowa||Sprawność umysłowa|]] == Skurcz żołądka == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] zobacz też: * → [[Napary/Działanie#Ból żołądka|Ból żołądka]] * → [[Napary/Działanie#Trawienie|Trawienie]] * → Działanie [[Napary/Działanie#Rozkurczowe|rozkurczowe]] == Sprawność umysłowa == [[Napary/Herbata zielona|Herbata zielona]] i [[Napary/Herbata chińska#Herbata chińska czarna|czarna]] prawdopodobnie mogą obniżyć ryzyko demencji o 16%. Wspomagają pracę mózgu, ponieważ zawierają [[Napary/Pomoc#F|flawonoidy]] i [[Napary/Pomoc#L|L-teaninę]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Śnieżyczka przebiśnieg|Śnieżyczka przebiśnieg]] * [[Napary/Piwonia biała|Piwonia biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] == Stan zapalny jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Stany lękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Stawy == Przy chorobach zwyrodnieniowych stawów pomagają zioła działające [[Napary/Działanie#Przeciwzapalnie|przeciwzapalnie]], [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]] oraz [[Napary/Działanie#Przeciwutleniacze|przeciwutleniająco]]. Wspierająco działają również zioła zawierające [[Napary/Pomoc#K|krzemionkę]]. * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Rdest ptasi|Rdest ptasi]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Czarci pazur|Czarci pazur]] * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Stres == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Melisa lekarska|Melisa lekarska]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] [[#top|↑]] == Ś == == Ściągające == Substancje działające ściągająco (kontrakcyjnie, adstryngentnie) pomagają zwężać pory, redukując obrzęki i jednocześnie oczyszczając skórę. Działają również lekko przeciwzapalnie. * [[Napary/Borówka brusznica|Borówka brusznica]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Dąb omszony|Dąb omszony]]<ref>[https://leksykon.com.pl/tag/dzialanie-sciagajace/ Leksykon]</ref><ref>[https://leksykon.com.pl/leksykon-substancji/dab-omszony/interakcje/ Leksykon]</ref> * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] [[#top|↑]] == T == == Toksyny == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Trawienie == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Pu-erh|Pu-erh]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Melisa lekarska|melisy lekarskiej]], [[Napary/Mięta pieprzowa|mięty pieprzowej]] i [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] * Mieszanka z [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] zobacz też: * → [[Napary/Działanie#Nieżyt żołądka|Nieżyt żołądka]] * → [[Napary/Działanie#Nudności|Nudności]] * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] * → [[Napary/Działanie#Wzdęcia|Wzdęcia]] * → [[Napary/Działanie#Zgaga|Zgaga]] == Trądzik == === Trądzik młodzieńczy === Najskuteczniejsze zioła na trądzik młodzieńczy mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]] i [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]]. Terapie ziołowe nie od razu przynoszą widoczne rezultaty. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Łopian większy|Łopian większy]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Perz właściwy|Perz właściwy]] === Trądzik różowaty === * [[Napary/Róża dzika|Róża dzika]] == Trzustka == Prawidłową prace trzustki wspomagają napary z roślin zawierających [[Napary/Pomoc#G|gorycze (substancje gorzkie)]]. * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Goryczka żółta|Goryczka żółta]] [[#top|↑]] == U == == Uderzenia gorąca == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Układ krwionośny == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] == Układ moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Uspokojenie == * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Gojnik|Gojnik]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] * Mieszanka z [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] == Uszczelniające == * [[Napary/Pokrzywa|Pokrzywa]] [[#top|↑]] == W == == Wątroba == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Goryczka żółta|Goryczka żółta]] == Włosy == Na dobrą strukturę oraz wygląd włosów wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Wrzody żołądka == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Wykrztuszanie == * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Wymioty == * → [[Napary/Działanie#Nudności|Nudności]] == Wypadanie włosów == * → [[Napary/Działanie#Włosy|Włosy]] == Wzdęcia == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Wzmacnianie naczyń krwionośnych == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] [[#top|↑]] == Z == == Zapalenie oskrzeli == * → [[Napary/Działanie#Oskrzela|Oskrzela]] == Zapalenie pęcherza == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Zapalenie stawów == * → [[Napary/Działanie#Stawy|Stawy]] == Zaparcia == * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zgaga == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Babka lancetowata|Babka lancetowata]] * Mieszanka z [[Napary/Prawoślaz lekarski|prawoślazu lekarskiego]] i [[Napary/Rdest wielokwiatowy|rdestu wielokwiatowego]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zmęczenie == * → [[Napary/Działanie#Energia|Energia]] [[#top|↑]] == Ż == == Żółciopędne == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Brzoza|Brzoza]] [[#top|↑]] == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> t12d2h4kqf5ghmrfgtkkrfo3rufvxja 541016 541015 2026-04-27T17:23:57Z EdytaT 2664 /* Przeciwbólowe */ 541016 wikitext text/x-wiki {{Podrozdział|[[Napary]]|Działanie}} {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} {{SpisAlfabetyczny}} == A == == Afrodyzjak == * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Alergie == Ulgę przy alergiach mogą przynieść napary z ziół zawierających substancje redukujące [[Napary/Pomoc#H|histaminę]]. Należy przy tym koniecznie zwrócić uwagę, że niektóre z ziół ogólnie zalecanych przeciw alergiom same mogą być ich przyczyną u osób uczulonych na ten rodzaj roślin! * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Głóg dwuszyjkowy|Głóg dwuszyjkowy]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Lakownica żółtawa|Lakownica żółtawa (Reishi, Ling Zhi)]] == Alzheimer == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Anoreksja == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] == Antydepresant == * → [[Napary/Działanie#Depresja|Depresja]] == Antyoksydant == * → [[Napary/Działanie#Przeciwutleniacze|Przeciwutleniacze]] == Anty-aging == Dla seniorów prozdrowotnie działają głównie zioła o właściwościach [[Napary/Pomoc#P|antyoksydacyjnych]], neutralizujących [[Napary/Pomoc#W|wolne rodniki]], wspierających produkcję [[Napary/Pomoc#K|kolagenu]] oraz regenerujących komórki. * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Róża dzika|Róża dzika]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] == Apetyt == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] * → [[Napary/Działanie#Odchudzanie|Nadmierny apetyt]] == Artretyzm == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Artroza == * → [[Napary/Działanie#Stawy|Stawy]] == Astma == * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] [[#top|↑]] == B == == Bakteriobójcze == * → [[Napary/Działanie#Przeciwbakteryjne|Przeciwbakteryjne]] == Bezsenność == * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Chmiel|Chmiel]] jest często kojarzony z uczuciem odprężenia i zmęczenia i może pomóc przespać noc. * Mieszanka z [[Napary/Rumianek pospolity|rumianku]], [[Napary/Pokrzywa|pokrzywy]], [[Napary/Koper włoski|kopru włoskiego]], [[Napary/Lawenda wąskolistna|lawendy]] i [[Napary/Mięta pieprzowa|mięty]] == Biegunka == Przy biegunce pomocne są substancje roślinne działające [[Napary/Działanie#Ściągające|ściągająco]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] i [[Napary/Działanie#Przeciwskurczowe|przeciwskurczowo]] oraz zawierające [[Napary/Pomoc#G|garbniki]]. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Jeżyna fałdowana|Jeżyna fałdowana]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Borelioza == Do wspomagania terapii boreliozy wykorzystuje się zioła, które mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] oraz wzmacniające [[Napary/Działanie#Odporność|układ odpornościowy]]. * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] * [[Napary/Szczeć pospolita|Szczeć pospolita]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] * [[Napary/Cryptolepis sanguinolenta|Cryptolepis sanguinolenta]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Brodziuszka wiechowata|Brodziuszka wiechowata]] (Andrographis paniculata) * [[Napary/Traganek błoniasty|Traganek błoniasty]] * [[Napary/Kolcorośl lecznicza|Kolcorośl lecznicza (Sarsaparilla)]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] (czosnek) == Ból brzucha == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] == Ból gardła == * [[Napary/Szałwia lekarska|Szałwia lekarska]] == Ból głowy == * → [[Napary/Działanie#Migrena|Migrena]] == Ból zęba == * [[Napary/Goździki|Goździki]] == Ból żołądka == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] == Bóle menstruacyjne == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] == Brak apetytu == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Traganek błoniasty|Traganek błoniasty]] [[#top|↑]] == C == == Choroby neurodegeneracyjne == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Cera == * → [[Napary/Działanie#Skóra|Skóra]] == Cholesterol == * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Chrypka == * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Cukrzyca == * [[Napary/Morwa biała|Morwa biała]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Gymnema sylvestre|Gymnema sylvestre (gumnar)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] [[#top|↑]] == D == == Demencja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Depresja == Niektóre zioła pomagają hamować rozwój depresji. * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Melisa lekarska|Melisa lekarska]] == Detoksykacja == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Dezorientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Dna moczanowa == * [[Napary/Perz właściwy|Perz właściwy]] == Dostarczanie witamin i minerałów == * większość naparów == Drogi moczowe == Przy dolegliwościach pęcherza czy cewki moczowej trzeba przede wszystkim zwiększyć ilość wypijanych płynów. Częste oddawanie moczu sprzyja wypłukiwaniu bakterii z dróg moczowych. Należy pić co najmniej 2,5-3 litrów wody dziennie. Ponadto można sięgnąć po herbatki ziołowe o działaniu [[Napary/Działanie#Moczopędne|moczopędnym]], [[Napary/Działanie#przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbakteryjne|antybakteryjnym]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Mącznica lekarska|Mącznica lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] == Drogi oddechowe == Na dolegliwości dróg oddechowych polecane są napary z ziół o działaniu [[Napary/Działanie#Wykrztuszanie|wykrztuśnym]], rozkurczającym oskrzela i przeciwzapalnym. * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Podbiał pospolity|Podbiał pospolity]] * [[Napary/Pierwiosnek lekarski|Pierwiosnek lekarski]] * [[Napary/Eukaliptus gałkowy|Eukaliptus gałkowy]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] * [[Napary/Jasnota purpurowa|Jasnota purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Drogi żółciowe == * → [[Napary/Działanie#Żółciopędne|Żółciopędne]] == Dyspepsja == * → [[Napary/Działanie#Trawienie|Trawienie]] == Dziąsła == * → [[Napary/Działanie#Jama ustna|Jama ustna]] [[#top|↑]] == E == == Energia == Napoje zawierające [[Napary/Pomoc#K|kofeinę]] działają energetyzująco. * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Matcha|Matcha]] * [[Napary/Sencha|Sencha]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Ulung|Ulung]] * [[Napary/Herbata chińska#Herbata chińska biała|Herbata biała]] * [[Napary/Imbir lekarski|Imbir lekarski]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] [[#top|↑]] == F == == Fotouczulające == {{Uwaga|Ziół fotouczulających nie należy pić latem!}} Zioła fotouczulające w połączeniu z działaniem promieni słonecznych na skórę mogą powodować swędzącą wysypkę. * [[Napary/Arnika górska|Arnika górska]] * [[Napary/Nawłoć pospolita|Nawłoć pospolita]] * [[Napary/Słonecznik zwyczajny|Słonecznik zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wrotycz pospolity|Wrotycz pospolity]] * [[Napary/Bylica pospolita|Bylica pospolita]] * [[Napary/Aminek egipski|Aminek egipski]] (fototoksyczne) * [[Napary/Aminek wielki|Aminek wielki]] (fototoksyczne) * [[Napary/Dzięgiel litwor|Dzięgiel litwor]] (fototoksyczne); * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] (fototoksyczne) * [[Napary/Ruta zwyczajna|Ruta zwyczajna]] (fototoksyczne) == G == == Gorączka == * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == H == == Hemoroidy == * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == I == == Infekcja dróg moczowych == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Inkontynencja == * [[Napary/Rooibos|Rooibos]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Irygacje == * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == J == == Jama ustna == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Tasznik pospolity|Tasznik pospolity]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] [[#top|↑]] == K == == Kac == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Kamica nerkowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kamica żółciowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kaszel == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Katar sienny == * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Koncentracja == * [[Napary/Gojnik|Gojnik]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Przetacznik leśny|Przetacznik leśny]] * [[Napary/Werbena pospolita|Werbena pospolita]] zobacz też: * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Kości == * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Epimedium wielkokwiatowe|Epimedium wielkokwiatowe]] == Krążenie == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] == Krwawienie menstruacyjne == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Krwawienie z nosa == * [[Napary/Tasznik pospolity|Tasznik pospolity]] [[#top|↑]] == L == == Laktacja == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Lęk == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] [[#top|↑]] == M == == Mdłości == * → [[Napary/Działanie#Nudności|Nudności]] == Menopauza == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Menstruacja == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Metabolizm == * → [[Napary/Działanie#Przemiana materii|Przemiana materii]] == Miażdżyca == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] == Miesiączka == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Mięśnie == * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] == Migrena == Herbatki ziołowe działają na ból głowy przez kombinacje składników [[Napary/Działanie#Przeciwbólowe|przeciwbólowych]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnych]] i [[Napary/Działanie#Rozkurczowe|rozkurczowych]]. * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Goździki|Goździki]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] * [[Napary/Ostryż długi|Ostryż dług (kurkuma)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * '''Uwaga:''' napary z [[Napary/Miłorząb dwuklapowy|miłorzębu]], [[Napary/Żeń-szeń|żeń-szenia]], [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] i [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] mogą wzmóc ból głowy. == Moczopędne == Pijąc herbatki o działaniu moczopędnym (diuretycznym) trzeba jednocześnie pić wystarczającą ilość wody, by uzupełniać wypłukiwane minerały! Dłuższe picie naparów moczopędnych może prowadzić np. do utraty [[Napary/Pomoc#P|potasu]] z organizmu. Warto więc kontrolować jego poziom we krwi. Właściwości moczopędne ziół pomagają też usuwać [[Napary/Pomoc#K|kwas moczowy]] powodujący artretyzm ([[Napary/Działanie#Dna moczanowa|dna moczanowa]]) oraz wspierają [[Napary/Działanie#Odchudzanie|odchudzanie]]. * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Lubczyk ogrodowy|Lubczyk ogrodowy]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] [[#top|↑]] == N == == Naczynia krwionośne == * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] == Nadciśnienie == * [[Napary/Serdecznik pospolity|Serdecznik pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Nadmierny apetyt == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Nadwaga == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Napięcie przedmiesiączkowe == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Napotne == Zioła działające napotnie pomagają w obniżeniu [[Napary/Działanie#Gorączka|gorączki]] i łagodzeniu objawów [[Napary/Działanie#Przeziębienie|przeziębienia]]. * [[Napary/Lipa drobnolistna|Lipa drobnolistna]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Malina właściwa|Malina właściwa]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Nasiadówki == * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] == Nastrój == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Nauka == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Nawadnianie organizmu == * wszystkie napary == Nerki == Zioła [[Napary/Działanie#Moczopędne|moczopędne]] wspomagają pracę nerek. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Perz właściwy|Perz właściwy]] == Nerwobóle == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Imbir lekarski|Imbir lekarski]] == Nerwowość == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lipa|Kwiaty lipy]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Neurodegeneracja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Neuropatia == * → [[Napary/Działanie#Nerwobóle|Nerwobóle]] == Niestrawność == * → [[Napary/Działanie#Trawienie|Trawienie]] == Nieświeży oddech == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] == Nietrzymanie moczu == * → [[Napary/Działanie#Inkontynencja|Inkontynencja]] == Nieżyt żołądka == * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rzewień_palczasty|Rzewień palczasty (rabarbar dłoniasty))]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Nocne poty == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Nudności == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Mieszanki#Napar z anyżu, kopru włoskiego i kminku|Mieszanka z anyżu, kopru włoskiego i kminku]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] [[#top|↑]] == O == == Odchudzanie == Składniki ziół i roślin wspomagających odchudzanie są różnorodne: stymulujące spalanie tkanki tłuszczowej, oczyszczające organizm z [[Napary/Działanie#Oczyszczanie z toksyn|toksyn]], [[Napary/Działanie#moczopędne|moczopędne]], pobudzające proces [[Napary/Działanie#Trawienie|trawienia]], redukujące apetyt i chęć podjadania. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Rooibos|Rooibos]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty]], [[Napary/Pokrzywa|pokrzywy]] i [[Napary/Mniszek lekarski|mniszka]] == Oczyszczanie z toksyn == Detoksykacja organizmu (detoks) to proces fizjologiczny, w którym organizm (głównie wątroba, nerki, skóra i płuca) usuwa zbędne produkty przemiany materii oraz neutralizuje szkodliwe substancje. Stosowanie odpowiednich ziół wspiera np. detoksykację wątroby. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] – oczyszcza organizm z toksyn, działa odtruwająco i lekko moczopędnie, stymuluje metabolizm. * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Odporność == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Odrobaczanie == * → [[Napary/Działanie#Pasożyty|Pasożyty]] == Orientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Oskrzela == * → [[Napary/Działanie#Drogi oddechowe|oddechowe]] == Osteoporoza == * → [[Napary/Działanie#Kości|Kości]] == Otępienie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] [[#top|↑]] == P == == Pamięć == Stuprocentowy sok z pomarańczy prawdopodobnie redukuje ryzyko pogarszania pamięci o 36%. * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Pasożyty == * [[Napary/Bylica piołun|Bylica piołun (piołun)]] * [[Napary/Goździki|Goździki]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] == Paznokcie == Na dobrą strukturę oraz wygląd paznokci wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Pęcherz moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Płukanie jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Podagra == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Prostata == * [[Napary/Pokrzywa|Pokrzywa]] == Przeciwbólowe == * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwbakteryjne == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwgrzybicze == * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwkaszlowe == * → [[Napary/Działanie#Kaszel|Kaszel]] == Przeciwlękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Przeciwnowotworowe == == Przeciwskurczowe == * [[Napary/Rozmaryn|Rozmaryn]] == Przeciwutleniacze == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwwirusowe == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Przeciwzapalne == Miarą stanu zapalnego jest np. poziom enzymu wskazującego na taki stan. * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] == Przeczyszczające == * [[Napary/Kruszyna pospolita|Kruszyna pospolita]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] == Przekwitanie == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Niepokalanek pospolity|Niepokalanek pospolity]] * [[Napary/Rabarbar ogrodowy|Rabarbar ogrodowy]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Malwa czarna|malwy czarnej]], [[Napary/Jasnota biała|jasnoty białej]], [[Napary/Serdecznik pospolity|serdecznika pospolitego]], [[Napary/Chmiel zwyczajny|chmielu zwyczajnego]], [[Napary/Melisa lekarska|melisy lekarskiej]] i [[Napary/Rumianek pospolity|rumianku pospolitego]] == Przemiana materii == * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Perz właściwy|Perz właściwy]] * Mieszanka z [[Napary/Pu-erh|pu-erh]], [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]] i [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] == Przeziębienie == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == R == == Regeneracja organizmu == * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Liście laurowe|Liście laurowe]] == Relaks == * → [[Napary/Działanie#Uspokojenie|Uspokojenie]] == Reumatyzm == * [[Napary/Wiązówka błotna|Wiązówka błotna]] == Rozkojarzenie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Rozkurczowe == Działanie rozkurczowe (rozluźniające) naparów dotyczy przede wszystkim mięśni gładkich przewodu pokarmowego (żołądka, jelit, dróg żółciowych). Pomaga to rozluźnić perystaltykę jelit i poprawić trawienie. Ponadto działa na mięśnie układu moczowego i macicy. * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty pieprzowej]], [[Napary/Rumianek pospolity|rumianku pospolitego]] i [[Napary/Melisa lekarska|melisy lekarskiej]] zobacz też: * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] [[#top|↑]] == S == == Samopoczucie == * → [[Napary/Działanie#Nastrój|Nastrój]] == Sen == * → [[Napary/Działanie#Bezsenność|Bezsenność]] == Serce == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Serdecznik pospolity|serdecznika pospolitego]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum (jiaogulan, ziele wieczności)]] == Skóra == Starzeniu się skory przeciwdziałają napary z ziół zawierających [[Napary/Pomoc#P|antyoksydanty]]. Na dobrą strukturę oraz wygląd skóry wpływają m. in. zioła bogate w [[Napary/Pomoc#K|krzem]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Skupienie == * → [[Napary/Działanie#Sprawność umysłowa||Sprawność umysłowa|]] == Skurcz żołądka == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] zobacz też: * → [[Napary/Działanie#Ból żołądka|Ból żołądka]] * → [[Napary/Działanie#Trawienie|Trawienie]] * → Działanie [[Napary/Działanie#Rozkurczowe|rozkurczowe]] == Sprawność umysłowa == [[Napary/Herbata zielona|Herbata zielona]] i [[Napary/Herbata chińska#Herbata chińska czarna|czarna]] prawdopodobnie mogą obniżyć ryzyko demencji o 16%. Wspomagają pracę mózgu, ponieważ zawierają [[Napary/Pomoc#F|flawonoidy]] i [[Napary/Pomoc#L|L-teaninę]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Śnieżyczka przebiśnieg|Śnieżyczka przebiśnieg]] * [[Napary/Piwonia biała|Piwonia biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] == Stan zapalny jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Stany lękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Stawy == Przy chorobach zwyrodnieniowych stawów pomagają zioła działające [[Napary/Działanie#Przeciwzapalnie|przeciwzapalnie]], [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]] oraz [[Napary/Działanie#Przeciwutleniacze|przeciwutleniająco]]. Wspierająco działają również zioła zawierające [[Napary/Pomoc#K|krzemionkę]]. * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Rdest ptasi|Rdest ptasi]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Czarci pazur|Czarci pazur]] * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Stres == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Melisa lekarska|Melisa lekarska]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] [[#top|↑]] == Ś == == Ściągające == Substancje działające ściągająco (kontrakcyjnie, adstryngentnie) pomagają zwężać pory, redukując obrzęki i jednocześnie oczyszczając skórę. Działają również lekko przeciwzapalnie. * [[Napary/Borówka brusznica|Borówka brusznica]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Dąb omszony|Dąb omszony]]<ref>[https://leksykon.com.pl/tag/dzialanie-sciagajace/ Leksykon]</ref><ref>[https://leksykon.com.pl/leksykon-substancji/dab-omszony/interakcje/ Leksykon]</ref> * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] [[#top|↑]] == T == == Toksyny == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Trawienie == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Pu-erh|Pu-erh]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Melisa lekarska|melisy lekarskiej]], [[Napary/Mięta pieprzowa|mięty pieprzowej]] i [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] * Mieszanka z [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] zobacz też: * → [[Napary/Działanie#Nieżyt żołądka|Nieżyt żołądka]] * → [[Napary/Działanie#Nudności|Nudności]] * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] * → [[Napary/Działanie#Wzdęcia|Wzdęcia]] * → [[Napary/Działanie#Zgaga|Zgaga]] == Trądzik == === Trądzik młodzieńczy === Najskuteczniejsze zioła na trądzik młodzieńczy mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]] i [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]]. Terapie ziołowe nie od razu przynoszą widoczne rezultaty. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Łopian większy|Łopian większy]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Perz właściwy|Perz właściwy]] === Trądzik różowaty === * [[Napary/Róża dzika|Róża dzika]] == Trzustka == Prawidłową prace trzustki wspomagają napary z roślin zawierających [[Napary/Pomoc#G|gorycze (substancje gorzkie)]]. * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Goryczka żółta|Goryczka żółta]] [[#top|↑]] == U == == Uderzenia gorąca == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Układ krwionośny == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] == Układ moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Uspokojenie == * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Gojnik|Gojnik]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] * Mieszanka z [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] == Uszczelniające == * [[Napary/Pokrzywa|Pokrzywa]] [[#top|↑]] == W == == Wątroba == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Goryczka żółta|Goryczka żółta]] == Włosy == Na dobrą strukturę oraz wygląd włosów wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Wrzody żołądka == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Wykrztuszanie == * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Wymioty == * → [[Napary/Działanie#Nudności|Nudności]] == Wypadanie włosów == * → [[Napary/Działanie#Włosy|Włosy]] == Wzdęcia == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Wzmacnianie naczyń krwionośnych == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] [[#top|↑]] == Z == == Zapalenie oskrzeli == * → [[Napary/Działanie#Oskrzela|Oskrzela]] == Zapalenie pęcherza == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Zapalenie stawów == * → [[Napary/Działanie#Stawy|Stawy]] == Zaparcia == * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zgaga == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Babka lancetowata|Babka lancetowata]] * Mieszanka z [[Napary/Prawoślaz lekarski|prawoślazu lekarskiego]] i [[Napary/Rdest wielokwiatowy|rdestu wielokwiatowego]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zmęczenie == * → [[Napary/Działanie#Energia|Energia]] [[#top|↑]] == Ż == == Żółciopędne == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Brzoza|Brzoza]] [[#top|↑]] == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> jj1uaqszfgkfv510r8du3xns2khzd7l 541017 541016 2026-04-27T17:24:25Z EdytaT 2664 /* Przeciwnowotworowe */ 541017 wikitext text/x-wiki {{Podrozdział|[[Napary]]|Działanie}} {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} {{SpisAlfabetyczny}} == A == == Afrodyzjak == * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Alergie == Ulgę przy alergiach mogą przynieść napary z ziół zawierających substancje redukujące [[Napary/Pomoc#H|histaminę]]. Należy przy tym koniecznie zwrócić uwagę, że niektóre z ziół ogólnie zalecanych przeciw alergiom same mogą być ich przyczyną u osób uczulonych na ten rodzaj roślin! * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Głóg dwuszyjkowy|Głóg dwuszyjkowy]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Lakownica żółtawa|Lakownica żółtawa (Reishi, Ling Zhi)]] == Alzheimer == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Anoreksja == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] == Antydepresant == * → [[Napary/Działanie#Depresja|Depresja]] == Antyoksydant == * → [[Napary/Działanie#Przeciwutleniacze|Przeciwutleniacze]] == Anty-aging == Dla seniorów prozdrowotnie działają głównie zioła o właściwościach [[Napary/Pomoc#P|antyoksydacyjnych]], neutralizujących [[Napary/Pomoc#W|wolne rodniki]], wspierających produkcję [[Napary/Pomoc#K|kolagenu]] oraz regenerujących komórki. * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Róża dzika|Róża dzika]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] == Apetyt == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] * → [[Napary/Działanie#Odchudzanie|Nadmierny apetyt]] == Artretyzm == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Artroza == * → [[Napary/Działanie#Stawy|Stawy]] == Astma == * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] [[#top|↑]] == B == == Bakteriobójcze == * → [[Napary/Działanie#Przeciwbakteryjne|Przeciwbakteryjne]] == Bezsenność == * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Chmiel|Chmiel]] jest często kojarzony z uczuciem odprężenia i zmęczenia i może pomóc przespać noc. * Mieszanka z [[Napary/Rumianek pospolity|rumianku]], [[Napary/Pokrzywa|pokrzywy]], [[Napary/Koper włoski|kopru włoskiego]], [[Napary/Lawenda wąskolistna|lawendy]] i [[Napary/Mięta pieprzowa|mięty]] == Biegunka == Przy biegunce pomocne są substancje roślinne działające [[Napary/Działanie#Ściągające|ściągająco]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] i [[Napary/Działanie#Przeciwskurczowe|przeciwskurczowo]] oraz zawierające [[Napary/Pomoc#G|garbniki]]. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Jeżyna fałdowana|Jeżyna fałdowana]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Borelioza == Do wspomagania terapii boreliozy wykorzystuje się zioła, które mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] oraz wzmacniające [[Napary/Działanie#Odporność|układ odpornościowy]]. * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] * [[Napary/Szczeć pospolita|Szczeć pospolita]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] * [[Napary/Cryptolepis sanguinolenta|Cryptolepis sanguinolenta]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Brodziuszka wiechowata|Brodziuszka wiechowata]] (Andrographis paniculata) * [[Napary/Traganek błoniasty|Traganek błoniasty]] * [[Napary/Kolcorośl lecznicza|Kolcorośl lecznicza (Sarsaparilla)]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] (czosnek) == Ból brzucha == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] == Ból gardła == * [[Napary/Szałwia lekarska|Szałwia lekarska]] == Ból głowy == * → [[Napary/Działanie#Migrena|Migrena]] == Ból zęba == * [[Napary/Goździki|Goździki]] == Ból żołądka == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] == Bóle menstruacyjne == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] == Brak apetytu == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Traganek błoniasty|Traganek błoniasty]] [[#top|↑]] == C == == Choroby neurodegeneracyjne == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Cera == * → [[Napary/Działanie#Skóra|Skóra]] == Cholesterol == * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Chrypka == * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Cukrzyca == * [[Napary/Morwa biała|Morwa biała]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Gymnema sylvestre|Gymnema sylvestre (gumnar)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] [[#top|↑]] == D == == Demencja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Depresja == Niektóre zioła pomagają hamować rozwój depresji. * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Melisa lekarska|Melisa lekarska]] == Detoksykacja == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Dezorientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Dna moczanowa == * [[Napary/Perz właściwy|Perz właściwy]] == Dostarczanie witamin i minerałów == * większość naparów == Drogi moczowe == Przy dolegliwościach pęcherza czy cewki moczowej trzeba przede wszystkim zwiększyć ilość wypijanych płynów. Częste oddawanie moczu sprzyja wypłukiwaniu bakterii z dróg moczowych. Należy pić co najmniej 2,5-3 litrów wody dziennie. Ponadto można sięgnąć po herbatki ziołowe o działaniu [[Napary/Działanie#Moczopędne|moczopędnym]], [[Napary/Działanie#przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbakteryjne|antybakteryjnym]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Mącznica lekarska|Mącznica lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] == Drogi oddechowe == Na dolegliwości dróg oddechowych polecane są napary z ziół o działaniu [[Napary/Działanie#Wykrztuszanie|wykrztuśnym]], rozkurczającym oskrzela i przeciwzapalnym. * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Podbiał pospolity|Podbiał pospolity]] * [[Napary/Pierwiosnek lekarski|Pierwiosnek lekarski]] * [[Napary/Eukaliptus gałkowy|Eukaliptus gałkowy]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] * [[Napary/Jasnota purpurowa|Jasnota purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Drogi żółciowe == * → [[Napary/Działanie#Żółciopędne|Żółciopędne]] == Dyspepsja == * → [[Napary/Działanie#Trawienie|Trawienie]] == Dziąsła == * → [[Napary/Działanie#Jama ustna|Jama ustna]] [[#top|↑]] == E == == Energia == Napoje zawierające [[Napary/Pomoc#K|kofeinę]] działają energetyzująco. * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Matcha|Matcha]] * [[Napary/Sencha|Sencha]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Ulung|Ulung]] * [[Napary/Herbata chińska#Herbata chińska biała|Herbata biała]] * [[Napary/Imbir lekarski|Imbir lekarski]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] [[#top|↑]] == F == == Fotouczulające == {{Uwaga|Ziół fotouczulających nie należy pić latem!}} Zioła fotouczulające w połączeniu z działaniem promieni słonecznych na skórę mogą powodować swędzącą wysypkę. * [[Napary/Arnika górska|Arnika górska]] * [[Napary/Nawłoć pospolita|Nawłoć pospolita]] * [[Napary/Słonecznik zwyczajny|Słonecznik zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wrotycz pospolity|Wrotycz pospolity]] * [[Napary/Bylica pospolita|Bylica pospolita]] * [[Napary/Aminek egipski|Aminek egipski]] (fototoksyczne) * [[Napary/Aminek wielki|Aminek wielki]] (fototoksyczne) * [[Napary/Dzięgiel litwor|Dzięgiel litwor]] (fototoksyczne); * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] (fototoksyczne) * [[Napary/Ruta zwyczajna|Ruta zwyczajna]] (fototoksyczne) == G == == Gorączka == * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == H == == Hemoroidy == * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == I == == Infekcja dróg moczowych == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Inkontynencja == * [[Napary/Rooibos|Rooibos]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Irygacje == * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == J == == Jama ustna == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Tasznik pospolity|Tasznik pospolity]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] [[#top|↑]] == K == == Kac == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Kamica nerkowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kamica żółciowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kaszel == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Katar sienny == * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Koncentracja == * [[Napary/Gojnik|Gojnik]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Przetacznik leśny|Przetacznik leśny]] * [[Napary/Werbena pospolita|Werbena pospolita]] zobacz też: * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Kości == * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Epimedium wielkokwiatowe|Epimedium wielkokwiatowe]] == Krążenie == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] == Krwawienie menstruacyjne == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Krwawienie z nosa == * [[Napary/Tasznik pospolity|Tasznik pospolity]] [[#top|↑]] == L == == Laktacja == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Lęk == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] [[#top|↑]] == M == == Mdłości == * → [[Napary/Działanie#Nudności|Nudności]] == Menopauza == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Menstruacja == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Metabolizm == * → [[Napary/Działanie#Przemiana materii|Przemiana materii]] == Miażdżyca == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] == Miesiączka == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Mięśnie == * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] == Migrena == Herbatki ziołowe działają na ból głowy przez kombinacje składników [[Napary/Działanie#Przeciwbólowe|przeciwbólowych]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnych]] i [[Napary/Działanie#Rozkurczowe|rozkurczowych]]. * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Goździki|Goździki]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] * [[Napary/Ostryż długi|Ostryż dług (kurkuma)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * '''Uwaga:''' napary z [[Napary/Miłorząb dwuklapowy|miłorzębu]], [[Napary/Żeń-szeń|żeń-szenia]], [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] i [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] mogą wzmóc ból głowy. == Moczopędne == Pijąc herbatki o działaniu moczopędnym (diuretycznym) trzeba jednocześnie pić wystarczającą ilość wody, by uzupełniać wypłukiwane minerały! Dłuższe picie naparów moczopędnych może prowadzić np. do utraty [[Napary/Pomoc#P|potasu]] z organizmu. Warto więc kontrolować jego poziom we krwi. Właściwości moczopędne ziół pomagają też usuwać [[Napary/Pomoc#K|kwas moczowy]] powodujący artretyzm ([[Napary/Działanie#Dna moczanowa|dna moczanowa]]) oraz wspierają [[Napary/Działanie#Odchudzanie|odchudzanie]]. * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Lubczyk ogrodowy|Lubczyk ogrodowy]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] [[#top|↑]] == N == == Naczynia krwionośne == * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] == Nadciśnienie == * [[Napary/Serdecznik pospolity|Serdecznik pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Nadmierny apetyt == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Nadwaga == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Napięcie przedmiesiączkowe == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Napotne == Zioła działające napotnie pomagają w obniżeniu [[Napary/Działanie#Gorączka|gorączki]] i łagodzeniu objawów [[Napary/Działanie#Przeziębienie|przeziębienia]]. * [[Napary/Lipa drobnolistna|Lipa drobnolistna]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Malina właściwa|Malina właściwa]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Nasiadówki == * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] == Nastrój == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Nauka == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Nawadnianie organizmu == * wszystkie napary == Nerki == Zioła [[Napary/Działanie#Moczopędne|moczopędne]] wspomagają pracę nerek. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Perz właściwy|Perz właściwy]] == Nerwobóle == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Imbir lekarski|Imbir lekarski]] == Nerwowość == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lipa|Kwiaty lipy]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Neurodegeneracja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Neuropatia == * → [[Napary/Działanie#Nerwobóle|Nerwobóle]] == Niestrawność == * → [[Napary/Działanie#Trawienie|Trawienie]] == Nieświeży oddech == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] == Nietrzymanie moczu == * → [[Napary/Działanie#Inkontynencja|Inkontynencja]] == Nieżyt żołądka == * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rzewień_palczasty|Rzewień palczasty (rabarbar dłoniasty))]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Nocne poty == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Nudności == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Mieszanki#Napar z anyżu, kopru włoskiego i kminku|Mieszanka z anyżu, kopru włoskiego i kminku]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] [[#top|↑]] == O == == Odchudzanie == Składniki ziół i roślin wspomagających odchudzanie są różnorodne: stymulujące spalanie tkanki tłuszczowej, oczyszczające organizm z [[Napary/Działanie#Oczyszczanie z toksyn|toksyn]], [[Napary/Działanie#moczopędne|moczopędne]], pobudzające proces [[Napary/Działanie#Trawienie|trawienia]], redukujące apetyt i chęć podjadania. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Rooibos|Rooibos]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty]], [[Napary/Pokrzywa|pokrzywy]] i [[Napary/Mniszek lekarski|mniszka]] == Oczyszczanie z toksyn == Detoksykacja organizmu (detoks) to proces fizjologiczny, w którym organizm (głównie wątroba, nerki, skóra i płuca) usuwa zbędne produkty przemiany materii oraz neutralizuje szkodliwe substancje. Stosowanie odpowiednich ziół wspiera np. detoksykację wątroby. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] – oczyszcza organizm z toksyn, działa odtruwająco i lekko moczopędnie, stymuluje metabolizm. * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Odporność == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Odrobaczanie == * → [[Napary/Działanie#Pasożyty|Pasożyty]] == Orientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Oskrzela == * → [[Napary/Działanie#Drogi oddechowe|oddechowe]] == Osteoporoza == * → [[Napary/Działanie#Kości|Kości]] == Otępienie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] [[#top|↑]] == P == == Pamięć == Stuprocentowy sok z pomarańczy prawdopodobnie redukuje ryzyko pogarszania pamięci o 36%. * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Pasożyty == * [[Napary/Bylica piołun|Bylica piołun (piołun)]] * [[Napary/Goździki|Goździki]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] == Paznokcie == Na dobrą strukturę oraz wygląd paznokci wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Pęcherz moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Płukanie jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Podagra == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Prostata == * [[Napary/Pokrzywa|Pokrzywa]] == Przeciwbólowe == * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwbakteryjne == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwgrzybicze == * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwkaszlowe == * → [[Napary/Działanie#Kaszel|Kaszel]] == Przeciwlękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Przeciwnowotworowe == * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] == Przeciwskurczowe == * [[Napary/Rozmaryn|Rozmaryn]] == Przeciwutleniacze == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwwirusowe == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Przeciwzapalne == Miarą stanu zapalnego jest np. poziom enzymu wskazującego na taki stan. * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] == Przeczyszczające == * [[Napary/Kruszyna pospolita|Kruszyna pospolita]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] == Przekwitanie == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Niepokalanek pospolity|Niepokalanek pospolity]] * [[Napary/Rabarbar ogrodowy|Rabarbar ogrodowy]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Malwa czarna|malwy czarnej]], [[Napary/Jasnota biała|jasnoty białej]], [[Napary/Serdecznik pospolity|serdecznika pospolitego]], [[Napary/Chmiel zwyczajny|chmielu zwyczajnego]], [[Napary/Melisa lekarska|melisy lekarskiej]] i [[Napary/Rumianek pospolity|rumianku pospolitego]] == Przemiana materii == * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Perz właściwy|Perz właściwy]] * Mieszanka z [[Napary/Pu-erh|pu-erh]], [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]] i [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] == Przeziębienie == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == R == == Regeneracja organizmu == * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Liście laurowe|Liście laurowe]] == Relaks == * → [[Napary/Działanie#Uspokojenie|Uspokojenie]] == Reumatyzm == * [[Napary/Wiązówka błotna|Wiązówka błotna]] == Rozkojarzenie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Rozkurczowe == Działanie rozkurczowe (rozluźniające) naparów dotyczy przede wszystkim mięśni gładkich przewodu pokarmowego (żołądka, jelit, dróg żółciowych). Pomaga to rozluźnić perystaltykę jelit i poprawić trawienie. Ponadto działa na mięśnie układu moczowego i macicy. * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty pieprzowej]], [[Napary/Rumianek pospolity|rumianku pospolitego]] i [[Napary/Melisa lekarska|melisy lekarskiej]] zobacz też: * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] [[#top|↑]] == S == == Samopoczucie == * → [[Napary/Działanie#Nastrój|Nastrój]] == Sen == * → [[Napary/Działanie#Bezsenność|Bezsenność]] == Serce == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Serdecznik pospolity|serdecznika pospolitego]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum (jiaogulan, ziele wieczności)]] == Skóra == Starzeniu się skory przeciwdziałają napary z ziół zawierających [[Napary/Pomoc#P|antyoksydanty]]. Na dobrą strukturę oraz wygląd skóry wpływają m. in. zioła bogate w [[Napary/Pomoc#K|krzem]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Skupienie == * → [[Napary/Działanie#Sprawność umysłowa||Sprawność umysłowa|]] == Skurcz żołądka == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] zobacz też: * → [[Napary/Działanie#Ból żołądka|Ból żołądka]] * → [[Napary/Działanie#Trawienie|Trawienie]] * → Działanie [[Napary/Działanie#Rozkurczowe|rozkurczowe]] == Sprawność umysłowa == [[Napary/Herbata zielona|Herbata zielona]] i [[Napary/Herbata chińska#Herbata chińska czarna|czarna]] prawdopodobnie mogą obniżyć ryzyko demencji o 16%. Wspomagają pracę mózgu, ponieważ zawierają [[Napary/Pomoc#F|flawonoidy]] i [[Napary/Pomoc#L|L-teaninę]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Śnieżyczka przebiśnieg|Śnieżyczka przebiśnieg]] * [[Napary/Piwonia biała|Piwonia biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] == Stan zapalny jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Stany lękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Stawy == Przy chorobach zwyrodnieniowych stawów pomagają zioła działające [[Napary/Działanie#Przeciwzapalnie|przeciwzapalnie]], [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]] oraz [[Napary/Działanie#Przeciwutleniacze|przeciwutleniająco]]. Wspierająco działają również zioła zawierające [[Napary/Pomoc#K|krzemionkę]]. * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Rdest ptasi|Rdest ptasi]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Czarci pazur|Czarci pazur]] * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Stres == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Melisa lekarska|Melisa lekarska]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] [[#top|↑]] == Ś == == Ściągające == Substancje działające ściągająco (kontrakcyjnie, adstryngentnie) pomagają zwężać pory, redukując obrzęki i jednocześnie oczyszczając skórę. Działają również lekko przeciwzapalnie. * [[Napary/Borówka brusznica|Borówka brusznica]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Dąb omszony|Dąb omszony]]<ref>[https://leksykon.com.pl/tag/dzialanie-sciagajace/ Leksykon]</ref><ref>[https://leksykon.com.pl/leksykon-substancji/dab-omszony/interakcje/ Leksykon]</ref> * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] [[#top|↑]] == T == == Toksyny == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Trawienie == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Pu-erh|Pu-erh]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Melisa lekarska|melisy lekarskiej]], [[Napary/Mięta pieprzowa|mięty pieprzowej]] i [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] * Mieszanka z [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] zobacz też: * → [[Napary/Działanie#Nieżyt żołądka|Nieżyt żołądka]] * → [[Napary/Działanie#Nudności|Nudności]] * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] * → [[Napary/Działanie#Wzdęcia|Wzdęcia]] * → [[Napary/Działanie#Zgaga|Zgaga]] == Trądzik == === Trądzik młodzieńczy === Najskuteczniejsze zioła na trądzik młodzieńczy mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]] i [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]]. Terapie ziołowe nie od razu przynoszą widoczne rezultaty. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Łopian większy|Łopian większy]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Perz właściwy|Perz właściwy]] === Trądzik różowaty === * [[Napary/Róża dzika|Róża dzika]] == Trzustka == Prawidłową prace trzustki wspomagają napary z roślin zawierających [[Napary/Pomoc#G|gorycze (substancje gorzkie)]]. * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Goryczka żółta|Goryczka żółta]] [[#top|↑]] == U == == Uderzenia gorąca == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Układ krwionośny == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] == Układ moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Uspokojenie == * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Gojnik|Gojnik]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] * Mieszanka z [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] == Uszczelniające == * [[Napary/Pokrzywa|Pokrzywa]] [[#top|↑]] == W == == Wątroba == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Goryczka żółta|Goryczka żółta]] == Włosy == Na dobrą strukturę oraz wygląd włosów wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Wrzody żołądka == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Wykrztuszanie == * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Wymioty == * → [[Napary/Działanie#Nudności|Nudności]] == Wypadanie włosów == * → [[Napary/Działanie#Włosy|Włosy]] == Wzdęcia == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Wzmacnianie naczyń krwionośnych == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] [[#top|↑]] == Z == == Zapalenie oskrzeli == * → [[Napary/Działanie#Oskrzela|Oskrzela]] == Zapalenie pęcherza == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Zapalenie stawów == * → [[Napary/Działanie#Stawy|Stawy]] == Zaparcia == * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zgaga == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Babka lancetowata|Babka lancetowata]] * Mieszanka z [[Napary/Prawoślaz lekarski|prawoślazu lekarskiego]] i [[Napary/Rdest wielokwiatowy|rdestu wielokwiatowego]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zmęczenie == * → [[Napary/Działanie#Energia|Energia]] [[#top|↑]] == Ż == == Żółciopędne == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Brzoza|Brzoza]] [[#top|↑]] == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> prppvy8o5i5vbad9g7o0ph0nifgatr4 541019 541017 2026-04-27T17:25:02Z EdytaT 2664 /* Uspokojenie */ 541019 wikitext text/x-wiki {{Podrozdział|[[Napary]]|Działanie}} {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} {{SpisAlfabetyczny}} == A == == Afrodyzjak == * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Alergie == Ulgę przy alergiach mogą przynieść napary z ziół zawierających substancje redukujące [[Napary/Pomoc#H|histaminę]]. Należy przy tym koniecznie zwrócić uwagę, że niektóre z ziół ogólnie zalecanych przeciw alergiom same mogą być ich przyczyną u osób uczulonych na ten rodzaj roślin! * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Głóg dwuszyjkowy|Głóg dwuszyjkowy]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Lakownica żółtawa|Lakownica żółtawa (Reishi, Ling Zhi)]] == Alzheimer == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Anoreksja == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] == Antydepresant == * → [[Napary/Działanie#Depresja|Depresja]] == Antyoksydant == * → [[Napary/Działanie#Przeciwutleniacze|Przeciwutleniacze]] == Anty-aging == Dla seniorów prozdrowotnie działają głównie zioła o właściwościach [[Napary/Pomoc#P|antyoksydacyjnych]], neutralizujących [[Napary/Pomoc#W|wolne rodniki]], wspierających produkcję [[Napary/Pomoc#K|kolagenu]] oraz regenerujących komórki. * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Róża dzika|Róża dzika]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] == Apetyt == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] * → [[Napary/Działanie#Odchudzanie|Nadmierny apetyt]] == Artretyzm == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Artroza == * → [[Napary/Działanie#Stawy|Stawy]] == Astma == * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] [[#top|↑]] == B == == Bakteriobójcze == * → [[Napary/Działanie#Przeciwbakteryjne|Przeciwbakteryjne]] == Bezsenność == * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Chmiel|Chmiel]] jest często kojarzony z uczuciem odprężenia i zmęczenia i może pomóc przespać noc. * Mieszanka z [[Napary/Rumianek pospolity|rumianku]], [[Napary/Pokrzywa|pokrzywy]], [[Napary/Koper włoski|kopru włoskiego]], [[Napary/Lawenda wąskolistna|lawendy]] i [[Napary/Mięta pieprzowa|mięty]] == Biegunka == Przy biegunce pomocne są substancje roślinne działające [[Napary/Działanie#Ściągające|ściągająco]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] i [[Napary/Działanie#Przeciwskurczowe|przeciwskurczowo]] oraz zawierające [[Napary/Pomoc#G|garbniki]]. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Jeżyna fałdowana|Jeżyna fałdowana]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Borelioza == Do wspomagania terapii boreliozy wykorzystuje się zioła, które mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] oraz wzmacniające [[Napary/Działanie#Odporność|układ odpornościowy]]. * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] * [[Napary/Szczeć pospolita|Szczeć pospolita]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] * [[Napary/Cryptolepis sanguinolenta|Cryptolepis sanguinolenta]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Brodziuszka wiechowata|Brodziuszka wiechowata]] (Andrographis paniculata) * [[Napary/Traganek błoniasty|Traganek błoniasty]] * [[Napary/Kolcorośl lecznicza|Kolcorośl lecznicza (Sarsaparilla)]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] (czosnek) == Ból brzucha == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] == Ból gardła == * [[Napary/Szałwia lekarska|Szałwia lekarska]] == Ból głowy == * → [[Napary/Działanie#Migrena|Migrena]] == Ból zęba == * [[Napary/Goździki|Goździki]] == Ból żołądka == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] == Bóle menstruacyjne == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] == Brak apetytu == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Traganek błoniasty|Traganek błoniasty]] [[#top|↑]] == C == == Choroby neurodegeneracyjne == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Cera == * → [[Napary/Działanie#Skóra|Skóra]] == Cholesterol == * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Chrypka == * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Cukrzyca == * [[Napary/Morwa biała|Morwa biała]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Gymnema sylvestre|Gymnema sylvestre (gumnar)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] [[#top|↑]] == D == == Demencja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Depresja == Niektóre zioła pomagają hamować rozwój depresji. * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Melisa lekarska|Melisa lekarska]] == Detoksykacja == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Dezorientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Dna moczanowa == * [[Napary/Perz właściwy|Perz właściwy]] == Dostarczanie witamin i minerałów == * większość naparów == Drogi moczowe == Przy dolegliwościach pęcherza czy cewki moczowej trzeba przede wszystkim zwiększyć ilość wypijanych płynów. Częste oddawanie moczu sprzyja wypłukiwaniu bakterii z dróg moczowych. Należy pić co najmniej 2,5-3 litrów wody dziennie. Ponadto można sięgnąć po herbatki ziołowe o działaniu [[Napary/Działanie#Moczopędne|moczopędnym]], [[Napary/Działanie#przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbakteryjne|antybakteryjnym]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Mącznica lekarska|Mącznica lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] == Drogi oddechowe == Na dolegliwości dróg oddechowych polecane są napary z ziół o działaniu [[Napary/Działanie#Wykrztuszanie|wykrztuśnym]], rozkurczającym oskrzela i przeciwzapalnym. * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Podbiał pospolity|Podbiał pospolity]] * [[Napary/Pierwiosnek lekarski|Pierwiosnek lekarski]] * [[Napary/Eukaliptus gałkowy|Eukaliptus gałkowy]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] * [[Napary/Jasnota purpurowa|Jasnota purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Drogi żółciowe == * → [[Napary/Działanie#Żółciopędne|Żółciopędne]] == Dyspepsja == * → [[Napary/Działanie#Trawienie|Trawienie]] == Dziąsła == * → [[Napary/Działanie#Jama ustna|Jama ustna]] [[#top|↑]] == E == == Energia == Napoje zawierające [[Napary/Pomoc#K|kofeinę]] działają energetyzująco. * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Matcha|Matcha]] * [[Napary/Sencha|Sencha]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Ulung|Ulung]] * [[Napary/Herbata chińska#Herbata chińska biała|Herbata biała]] * [[Napary/Imbir lekarski|Imbir lekarski]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] [[#top|↑]] == F == == Fotouczulające == {{Uwaga|Ziół fotouczulających nie należy pić latem!}} Zioła fotouczulające w połączeniu z działaniem promieni słonecznych na skórę mogą powodować swędzącą wysypkę. * [[Napary/Arnika górska|Arnika górska]] * [[Napary/Nawłoć pospolita|Nawłoć pospolita]] * [[Napary/Słonecznik zwyczajny|Słonecznik zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wrotycz pospolity|Wrotycz pospolity]] * [[Napary/Bylica pospolita|Bylica pospolita]] * [[Napary/Aminek egipski|Aminek egipski]] (fototoksyczne) * [[Napary/Aminek wielki|Aminek wielki]] (fototoksyczne) * [[Napary/Dzięgiel litwor|Dzięgiel litwor]] (fototoksyczne); * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] (fototoksyczne) * [[Napary/Ruta zwyczajna|Ruta zwyczajna]] (fototoksyczne) == G == == Gorączka == * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == H == == Hemoroidy == * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == I == == Infekcja dróg moczowych == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Inkontynencja == * [[Napary/Rooibos|Rooibos]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Irygacje == * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == J == == Jama ustna == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Tasznik pospolity|Tasznik pospolity]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] [[#top|↑]] == K == == Kac == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Kamica nerkowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kamica żółciowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kaszel == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Katar sienny == * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Koncentracja == * [[Napary/Gojnik|Gojnik]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Przetacznik leśny|Przetacznik leśny]] * [[Napary/Werbena pospolita|Werbena pospolita]] zobacz też: * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Kości == * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Epimedium wielkokwiatowe|Epimedium wielkokwiatowe]] == Krążenie == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] == Krwawienie menstruacyjne == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Krwawienie z nosa == * [[Napary/Tasznik pospolity|Tasznik pospolity]] [[#top|↑]] == L == == Laktacja == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Lęk == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] [[#top|↑]] == M == == Mdłości == * → [[Napary/Działanie#Nudności|Nudności]] == Menopauza == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Menstruacja == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Metabolizm == * → [[Napary/Działanie#Przemiana materii|Przemiana materii]] == Miażdżyca == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] == Miesiączka == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Mięśnie == * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] == Migrena == Herbatki ziołowe działają na ból głowy przez kombinacje składników [[Napary/Działanie#Przeciwbólowe|przeciwbólowych]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnych]] i [[Napary/Działanie#Rozkurczowe|rozkurczowych]]. * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Goździki|Goździki]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] * [[Napary/Ostryż długi|Ostryż dług (kurkuma)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * '''Uwaga:''' napary z [[Napary/Miłorząb dwuklapowy|miłorzębu]], [[Napary/Żeń-szeń|żeń-szenia]], [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] i [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] mogą wzmóc ból głowy. == Moczopędne == Pijąc herbatki o działaniu moczopędnym (diuretycznym) trzeba jednocześnie pić wystarczającą ilość wody, by uzupełniać wypłukiwane minerały! Dłuższe picie naparów moczopędnych może prowadzić np. do utraty [[Napary/Pomoc#P|potasu]] z organizmu. Warto więc kontrolować jego poziom we krwi. Właściwości moczopędne ziół pomagają też usuwać [[Napary/Pomoc#K|kwas moczowy]] powodujący artretyzm ([[Napary/Działanie#Dna moczanowa|dna moczanowa]]) oraz wspierają [[Napary/Działanie#Odchudzanie|odchudzanie]]. * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Lubczyk ogrodowy|Lubczyk ogrodowy]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] [[#top|↑]] == N == == Naczynia krwionośne == * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] == Nadciśnienie == * [[Napary/Serdecznik pospolity|Serdecznik pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Nadmierny apetyt == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Nadwaga == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Napięcie przedmiesiączkowe == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Napotne == Zioła działające napotnie pomagają w obniżeniu [[Napary/Działanie#Gorączka|gorączki]] i łagodzeniu objawów [[Napary/Działanie#Przeziębienie|przeziębienia]]. * [[Napary/Lipa drobnolistna|Lipa drobnolistna]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Malina właściwa|Malina właściwa]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Nasiadówki == * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] == Nastrój == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Nauka == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Nawadnianie organizmu == * wszystkie napary == Nerki == Zioła [[Napary/Działanie#Moczopędne|moczopędne]] wspomagają pracę nerek. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Perz właściwy|Perz właściwy]] == Nerwobóle == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Imbir lekarski|Imbir lekarski]] == Nerwowość == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lipa|Kwiaty lipy]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Neurodegeneracja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Neuropatia == * → [[Napary/Działanie#Nerwobóle|Nerwobóle]] == Niestrawność == * → [[Napary/Działanie#Trawienie|Trawienie]] == Nieświeży oddech == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] == Nietrzymanie moczu == * → [[Napary/Działanie#Inkontynencja|Inkontynencja]] == Nieżyt żołądka == * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rzewień_palczasty|Rzewień palczasty (rabarbar dłoniasty))]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Nocne poty == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Nudności == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Mieszanki#Napar z anyżu, kopru włoskiego i kminku|Mieszanka z anyżu, kopru włoskiego i kminku]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] [[#top|↑]] == O == == Odchudzanie == Składniki ziół i roślin wspomagających odchudzanie są różnorodne: stymulujące spalanie tkanki tłuszczowej, oczyszczające organizm z [[Napary/Działanie#Oczyszczanie z toksyn|toksyn]], [[Napary/Działanie#moczopędne|moczopędne]], pobudzające proces [[Napary/Działanie#Trawienie|trawienia]], redukujące apetyt i chęć podjadania. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Rooibos|Rooibos]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty]], [[Napary/Pokrzywa|pokrzywy]] i [[Napary/Mniszek lekarski|mniszka]] == Oczyszczanie z toksyn == Detoksykacja organizmu (detoks) to proces fizjologiczny, w którym organizm (głównie wątroba, nerki, skóra i płuca) usuwa zbędne produkty przemiany materii oraz neutralizuje szkodliwe substancje. Stosowanie odpowiednich ziół wspiera np. detoksykację wątroby. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] – oczyszcza organizm z toksyn, działa odtruwająco i lekko moczopędnie, stymuluje metabolizm. * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Odporność == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Odrobaczanie == * → [[Napary/Działanie#Pasożyty|Pasożyty]] == Orientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Oskrzela == * → [[Napary/Działanie#Drogi oddechowe|oddechowe]] == Osteoporoza == * → [[Napary/Działanie#Kości|Kości]] == Otępienie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] [[#top|↑]] == P == == Pamięć == Stuprocentowy sok z pomarańczy prawdopodobnie redukuje ryzyko pogarszania pamięci o 36%. * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Pasożyty == * [[Napary/Bylica piołun|Bylica piołun (piołun)]] * [[Napary/Goździki|Goździki]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] == Paznokcie == Na dobrą strukturę oraz wygląd paznokci wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Pęcherz moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Płukanie jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Podagra == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Prostata == * [[Napary/Pokrzywa|Pokrzywa]] == Przeciwbólowe == * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwbakteryjne == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwgrzybicze == * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwkaszlowe == * → [[Napary/Działanie#Kaszel|Kaszel]] == Przeciwlękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Przeciwnowotworowe == * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] == Przeciwskurczowe == * [[Napary/Rozmaryn|Rozmaryn]] == Przeciwutleniacze == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwwirusowe == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Przeciwzapalne == Miarą stanu zapalnego jest np. poziom enzymu wskazującego na taki stan. * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] == Przeczyszczające == * [[Napary/Kruszyna pospolita|Kruszyna pospolita]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] == Przekwitanie == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Niepokalanek pospolity|Niepokalanek pospolity]] * [[Napary/Rabarbar ogrodowy|Rabarbar ogrodowy]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Malwa czarna|malwy czarnej]], [[Napary/Jasnota biała|jasnoty białej]], [[Napary/Serdecznik pospolity|serdecznika pospolitego]], [[Napary/Chmiel zwyczajny|chmielu zwyczajnego]], [[Napary/Melisa lekarska|melisy lekarskiej]] i [[Napary/Rumianek pospolity|rumianku pospolitego]] == Przemiana materii == * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Perz właściwy|Perz właściwy]] * Mieszanka z [[Napary/Pu-erh|pu-erh]], [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]] i [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] == Przeziębienie == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == R == == Regeneracja organizmu == * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Liście laurowe|Liście laurowe]] == Relaks == * → [[Napary/Działanie#Uspokojenie|Uspokojenie]] == Reumatyzm == * [[Napary/Wiązówka błotna|Wiązówka błotna]] == Rozkojarzenie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Rozkurczowe == Działanie rozkurczowe (rozluźniające) naparów dotyczy przede wszystkim mięśni gładkich przewodu pokarmowego (żołądka, jelit, dróg żółciowych). Pomaga to rozluźnić perystaltykę jelit i poprawić trawienie. Ponadto działa na mięśnie układu moczowego i macicy. * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty pieprzowej]], [[Napary/Rumianek pospolity|rumianku pospolitego]] i [[Napary/Melisa lekarska|melisy lekarskiej]] zobacz też: * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] [[#top|↑]] == S == == Samopoczucie == * → [[Napary/Działanie#Nastrój|Nastrój]] == Sen == * → [[Napary/Działanie#Bezsenność|Bezsenność]] == Serce == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Serdecznik pospolity|serdecznika pospolitego]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum (jiaogulan, ziele wieczności)]] == Skóra == Starzeniu się skory przeciwdziałają napary z ziół zawierających [[Napary/Pomoc#P|antyoksydanty]]. Na dobrą strukturę oraz wygląd skóry wpływają m. in. zioła bogate w [[Napary/Pomoc#K|krzem]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Skupienie == * → [[Napary/Działanie#Sprawność umysłowa||Sprawność umysłowa|]] == Skurcz żołądka == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] zobacz też: * → [[Napary/Działanie#Ból żołądka|Ból żołądka]] * → [[Napary/Działanie#Trawienie|Trawienie]] * → Działanie [[Napary/Działanie#Rozkurczowe|rozkurczowe]] == Sprawność umysłowa == [[Napary/Herbata zielona|Herbata zielona]] i [[Napary/Herbata chińska#Herbata chińska czarna|czarna]] prawdopodobnie mogą obniżyć ryzyko demencji o 16%. Wspomagają pracę mózgu, ponieważ zawierają [[Napary/Pomoc#F|flawonoidy]] i [[Napary/Pomoc#L|L-teaninę]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Śnieżyczka przebiśnieg|Śnieżyczka przebiśnieg]] * [[Napary/Piwonia biała|Piwonia biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] == Stan zapalny jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Stany lękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Stawy == Przy chorobach zwyrodnieniowych stawów pomagają zioła działające [[Napary/Działanie#Przeciwzapalnie|przeciwzapalnie]], [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]] oraz [[Napary/Działanie#Przeciwutleniacze|przeciwutleniająco]]. Wspierająco działają również zioła zawierające [[Napary/Pomoc#K|krzemionkę]]. * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Rdest ptasi|Rdest ptasi]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Czarci pazur|Czarci pazur]] * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Stres == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Melisa lekarska|Melisa lekarska]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] [[#top|↑]] == Ś == == Ściągające == Substancje działające ściągająco (kontrakcyjnie, adstryngentnie) pomagają zwężać pory, redukując obrzęki i jednocześnie oczyszczając skórę. Działają również lekko przeciwzapalnie. * [[Napary/Borówka brusznica|Borówka brusznica]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Dąb omszony|Dąb omszony]]<ref>[https://leksykon.com.pl/tag/dzialanie-sciagajace/ Leksykon]</ref><ref>[https://leksykon.com.pl/leksykon-substancji/dab-omszony/interakcje/ Leksykon]</ref> * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] [[#top|↑]] == T == == Toksyny == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Trawienie == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Pu-erh|Pu-erh]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Melisa lekarska|melisy lekarskiej]], [[Napary/Mięta pieprzowa|mięty pieprzowej]] i [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] * Mieszanka z [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] zobacz też: * → [[Napary/Działanie#Nieżyt żołądka|Nieżyt żołądka]] * → [[Napary/Działanie#Nudności|Nudności]] * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] * → [[Napary/Działanie#Wzdęcia|Wzdęcia]] * → [[Napary/Działanie#Zgaga|Zgaga]] == Trądzik == === Trądzik młodzieńczy === Najskuteczniejsze zioła na trądzik młodzieńczy mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]] i [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]]. Terapie ziołowe nie od razu przynoszą widoczne rezultaty. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Łopian większy|Łopian większy]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Perz właściwy|Perz właściwy]] === Trądzik różowaty === * [[Napary/Róża dzika|Róża dzika]] == Trzustka == Prawidłową prace trzustki wspomagają napary z roślin zawierających [[Napary/Pomoc#G|gorycze (substancje gorzkie)]]. * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Goryczka żółta|Goryczka żółta]] [[#top|↑]] == U == == Uderzenia gorąca == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Układ krwionośny == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] == Układ moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Uspokojenie == * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Gojnik|Gojnik]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] * Mieszanka z [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] == Uszczelniające == * [[Napary/Pokrzywa|Pokrzywa]] [[#top|↑]] == W == == Wątroba == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Goryczka żółta|Goryczka żółta]] == Włosy == Na dobrą strukturę oraz wygląd włosów wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Wrzody żołądka == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Wykrztuszanie == * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Wymioty == * → [[Napary/Działanie#Nudności|Nudności]] == Wypadanie włosów == * → [[Napary/Działanie#Włosy|Włosy]] == Wzdęcia == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Wzmacnianie naczyń krwionośnych == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] [[#top|↑]] == Z == == Zapalenie oskrzeli == * → [[Napary/Działanie#Oskrzela|Oskrzela]] == Zapalenie pęcherza == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Zapalenie stawów == * → [[Napary/Działanie#Stawy|Stawy]] == Zaparcia == * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zgaga == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Babka lancetowata|Babka lancetowata]] * Mieszanka z [[Napary/Prawoślaz lekarski|prawoślazu lekarskiego]] i [[Napary/Rdest wielokwiatowy|rdestu wielokwiatowego]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zmęczenie == * → [[Napary/Działanie#Energia|Energia]] [[#top|↑]] == Ż == == Żółciopędne == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Brzoza|Brzoza]] [[#top|↑]] == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> gswjnydx3qugcem91s7wp1rh456uysy 541031 541019 2026-04-27T18:31:17Z EdytaT 2664 /* Stawy */ 541031 wikitext text/x-wiki {{Podrozdział|[[Napary]]|Działanie}} {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} {{SpisAlfabetyczny}} == A == == Afrodyzjak == * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Alergie == Ulgę przy alergiach mogą przynieść napary z ziół zawierających substancje redukujące [[Napary/Pomoc#H|histaminę]]. Należy przy tym koniecznie zwrócić uwagę, że niektóre z ziół ogólnie zalecanych przeciw alergiom same mogą być ich przyczyną u osób uczulonych na ten rodzaj roślin! * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Głóg dwuszyjkowy|Głóg dwuszyjkowy]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Lakownica żółtawa|Lakownica żółtawa (Reishi, Ling Zhi)]] == Alzheimer == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Anoreksja == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] == Antydepresant == * → [[Napary/Działanie#Depresja|Depresja]] == Antyoksydant == * → [[Napary/Działanie#Przeciwutleniacze|Przeciwutleniacze]] == Anty-aging == Dla seniorów prozdrowotnie działają głównie zioła o właściwościach [[Napary/Pomoc#P|antyoksydacyjnych]], neutralizujących [[Napary/Pomoc#W|wolne rodniki]], wspierających produkcję [[Napary/Pomoc#K|kolagenu]] oraz regenerujących komórki. * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Róża dzika|Róża dzika]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] == Apetyt == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] * → [[Napary/Działanie#Odchudzanie|Nadmierny apetyt]] == Artretyzm == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Artroza == * → [[Napary/Działanie#Stawy|Stawy]] == Astma == * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] [[#top|↑]] == B == == Bakteriobójcze == * → [[Napary/Działanie#Przeciwbakteryjne|Przeciwbakteryjne]] == Bezsenność == * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Chmiel|Chmiel]] jest często kojarzony z uczuciem odprężenia i zmęczenia i może pomóc przespać noc. * Mieszanka z [[Napary/Rumianek pospolity|rumianku]], [[Napary/Pokrzywa|pokrzywy]], [[Napary/Koper włoski|kopru włoskiego]], [[Napary/Lawenda wąskolistna|lawendy]] i [[Napary/Mięta pieprzowa|mięty]] == Biegunka == Przy biegunce pomocne są substancje roślinne działające [[Napary/Działanie#Ściągające|ściągająco]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] i [[Napary/Działanie#Przeciwskurczowe|przeciwskurczowo]] oraz zawierające [[Napary/Pomoc#G|garbniki]]. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Jeżyna fałdowana|Jeżyna fałdowana]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Borelioza == Do wspomagania terapii boreliozy wykorzystuje się zioła, które mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] oraz wzmacniające [[Napary/Działanie#Odporność|układ odpornościowy]]. * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] * [[Napary/Szczeć pospolita|Szczeć pospolita]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] * [[Napary/Cryptolepis sanguinolenta|Cryptolepis sanguinolenta]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Brodziuszka wiechowata|Brodziuszka wiechowata]] (Andrographis paniculata) * [[Napary/Traganek błoniasty|Traganek błoniasty]] * [[Napary/Kolcorośl lecznicza|Kolcorośl lecznicza (Sarsaparilla)]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] (czosnek) == Ból brzucha == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] == Ból gardła == * [[Napary/Szałwia lekarska|Szałwia lekarska]] == Ból głowy == * → [[Napary/Działanie#Migrena|Migrena]] == Ból zęba == * [[Napary/Goździki|Goździki]] == Ból żołądka == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] == Bóle menstruacyjne == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] == Brak apetytu == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Traganek błoniasty|Traganek błoniasty]] [[#top|↑]] == C == == Choroby neurodegeneracyjne == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Cera == * → [[Napary/Działanie#Skóra|Skóra]] == Cholesterol == * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Chrypka == * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Cukrzyca == * [[Napary/Morwa biała|Morwa biała]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Gymnema sylvestre|Gymnema sylvestre (gumnar)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] [[#top|↑]] == D == == Demencja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Depresja == Niektóre zioła pomagają hamować rozwój depresji. * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Melisa lekarska|Melisa lekarska]] == Detoksykacja == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Dezorientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Dna moczanowa == * [[Napary/Perz właściwy|Perz właściwy]] == Dostarczanie witamin i minerałów == * większość naparów == Drogi moczowe == Przy dolegliwościach pęcherza czy cewki moczowej trzeba przede wszystkim zwiększyć ilość wypijanych płynów. Częste oddawanie moczu sprzyja wypłukiwaniu bakterii z dróg moczowych. Należy pić co najmniej 2,5-3 litrów wody dziennie. Ponadto można sięgnąć po herbatki ziołowe o działaniu [[Napary/Działanie#Moczopędne|moczopędnym]], [[Napary/Działanie#przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbakteryjne|antybakteryjnym]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Mącznica lekarska|Mącznica lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] == Drogi oddechowe == Na dolegliwości dróg oddechowych polecane są napary z ziół o działaniu [[Napary/Działanie#Wykrztuszanie|wykrztuśnym]], rozkurczającym oskrzela i przeciwzapalnym. * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Podbiał pospolity|Podbiał pospolity]] * [[Napary/Pierwiosnek lekarski|Pierwiosnek lekarski]] * [[Napary/Eukaliptus gałkowy|Eukaliptus gałkowy]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] * [[Napary/Jasnota purpurowa|Jasnota purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Drogi żółciowe == * → [[Napary/Działanie#Żółciopędne|Żółciopędne]] == Dyspepsja == * → [[Napary/Działanie#Trawienie|Trawienie]] == Dziąsła == * → [[Napary/Działanie#Jama ustna|Jama ustna]] [[#top|↑]] == E == == Energia == Napoje zawierające [[Napary/Pomoc#K|kofeinę]] działają energetyzująco. * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Matcha|Matcha]] * [[Napary/Sencha|Sencha]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Ulung|Ulung]] * [[Napary/Herbata chińska#Herbata chińska biała|Herbata biała]] * [[Napary/Imbir lekarski|Imbir lekarski]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] [[#top|↑]] == F == == Fotouczulające == {{Uwaga|Ziół fotouczulających nie należy pić latem!}} Zioła fotouczulające w połączeniu z działaniem promieni słonecznych na skórę mogą powodować swędzącą wysypkę. * [[Napary/Arnika górska|Arnika górska]] * [[Napary/Nawłoć pospolita|Nawłoć pospolita]] * [[Napary/Słonecznik zwyczajny|Słonecznik zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wrotycz pospolity|Wrotycz pospolity]] * [[Napary/Bylica pospolita|Bylica pospolita]] * [[Napary/Aminek egipski|Aminek egipski]] (fototoksyczne) * [[Napary/Aminek wielki|Aminek wielki]] (fototoksyczne) * [[Napary/Dzięgiel litwor|Dzięgiel litwor]] (fototoksyczne); * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] (fototoksyczne) * [[Napary/Ruta zwyczajna|Ruta zwyczajna]] (fototoksyczne) == G == == Gorączka == * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == H == == Hemoroidy == * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == I == == Infekcja dróg moczowych == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Inkontynencja == * [[Napary/Rooibos|Rooibos]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Irygacje == * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == J == == Jama ustna == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Tasznik pospolity|Tasznik pospolity]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] [[#top|↑]] == K == == Kac == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Kamica nerkowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kamica żółciowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kaszel == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Katar sienny == * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Koncentracja == * [[Napary/Gojnik|Gojnik]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Przetacznik leśny|Przetacznik leśny]] * [[Napary/Werbena pospolita|Werbena pospolita]] zobacz też: * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Kości == * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Epimedium wielkokwiatowe|Epimedium wielkokwiatowe]] == Krążenie == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] == Krwawienie menstruacyjne == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Krwawienie z nosa == * [[Napary/Tasznik pospolity|Tasznik pospolity]] [[#top|↑]] == L == == Laktacja == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Lęk == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] [[#top|↑]] == M == == Mdłości == * → [[Napary/Działanie#Nudności|Nudności]] == Menopauza == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Menstruacja == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Metabolizm == * → [[Napary/Działanie#Przemiana materii|Przemiana materii]] == Miażdżyca == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] == Miesiączka == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Mięśnie == * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] == Migrena == Herbatki ziołowe działają na ból głowy przez kombinacje składników [[Napary/Działanie#Przeciwbólowe|przeciwbólowych]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnych]] i [[Napary/Działanie#Rozkurczowe|rozkurczowych]]. * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Goździki|Goździki]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] * [[Napary/Ostryż długi|Ostryż dług (kurkuma)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * '''Uwaga:''' napary z [[Napary/Miłorząb dwuklapowy|miłorzębu]], [[Napary/Żeń-szeń|żeń-szenia]], [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] i [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] mogą wzmóc ból głowy. == Moczopędne == Pijąc herbatki o działaniu moczopędnym (diuretycznym) trzeba jednocześnie pić wystarczającą ilość wody, by uzupełniać wypłukiwane minerały! Dłuższe picie naparów moczopędnych może prowadzić np. do utraty [[Napary/Pomoc#P|potasu]] z organizmu. Warto więc kontrolować jego poziom we krwi. Właściwości moczopędne ziół pomagają też usuwać [[Napary/Pomoc#K|kwas moczowy]] powodujący artretyzm ([[Napary/Działanie#Dna moczanowa|dna moczanowa]]) oraz wspierają [[Napary/Działanie#Odchudzanie|odchudzanie]]. * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Lubczyk ogrodowy|Lubczyk ogrodowy]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] [[#top|↑]] == N == == Naczynia krwionośne == * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] == Nadciśnienie == * [[Napary/Serdecznik pospolity|Serdecznik pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Nadmierny apetyt == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Nadwaga == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Napięcie przedmiesiączkowe == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Napotne == Zioła działające napotnie pomagają w obniżeniu [[Napary/Działanie#Gorączka|gorączki]] i łagodzeniu objawów [[Napary/Działanie#Przeziębienie|przeziębienia]]. * [[Napary/Lipa drobnolistna|Lipa drobnolistna]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Malina właściwa|Malina właściwa]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Nasiadówki == * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] == Nastrój == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Nauka == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Nawadnianie organizmu == * wszystkie napary == Nerki == Zioła [[Napary/Działanie#Moczopędne|moczopędne]] wspomagają pracę nerek. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Perz właściwy|Perz właściwy]] == Nerwobóle == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Imbir lekarski|Imbir lekarski]] == Nerwowość == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lipa|Kwiaty lipy]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Neurodegeneracja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Neuropatia == * → [[Napary/Działanie#Nerwobóle|Nerwobóle]] == Niestrawność == * → [[Napary/Działanie#Trawienie|Trawienie]] == Nieświeży oddech == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] == Nietrzymanie moczu == * → [[Napary/Działanie#Inkontynencja|Inkontynencja]] == Nieżyt żołądka == * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rzewień_palczasty|Rzewień palczasty (rabarbar dłoniasty))]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Nocne poty == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Nudności == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Mieszanki#Napar z anyżu, kopru włoskiego i kminku|Mieszanka z anyżu, kopru włoskiego i kminku]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] [[#top|↑]] == O == == Odchudzanie == Składniki ziół i roślin wspomagających odchudzanie są różnorodne: stymulujące spalanie tkanki tłuszczowej, oczyszczające organizm z [[Napary/Działanie#Oczyszczanie z toksyn|toksyn]], [[Napary/Działanie#moczopędne|moczopędne]], pobudzające proces [[Napary/Działanie#Trawienie|trawienia]], redukujące apetyt i chęć podjadania. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Rooibos|Rooibos]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty]], [[Napary/Pokrzywa|pokrzywy]] i [[Napary/Mniszek lekarski|mniszka]] == Oczyszczanie z toksyn == Detoksykacja organizmu (detoks) to proces fizjologiczny, w którym organizm (głównie wątroba, nerki, skóra i płuca) usuwa zbędne produkty przemiany materii oraz neutralizuje szkodliwe substancje. Stosowanie odpowiednich ziół wspiera np. detoksykację wątroby. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] – oczyszcza organizm z toksyn, działa odtruwająco i lekko moczopędnie, stymuluje metabolizm. * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Odporność == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Odrobaczanie == * → [[Napary/Działanie#Pasożyty|Pasożyty]] == Orientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Oskrzela == * → [[Napary/Działanie#Drogi oddechowe|oddechowe]] == Osteoporoza == * → [[Napary/Działanie#Kości|Kości]] == Otępienie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] [[#top|↑]] == P == == Pamięć == Stuprocentowy sok z pomarańczy prawdopodobnie redukuje ryzyko pogarszania pamięci o 36%. * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Pasożyty == * [[Napary/Bylica piołun|Bylica piołun (piołun)]] * [[Napary/Goździki|Goździki]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] == Paznokcie == Na dobrą strukturę oraz wygląd paznokci wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Pęcherz moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Płukanie jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Podagra == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Prostata == * [[Napary/Pokrzywa|Pokrzywa]] == Przeciwbólowe == * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwbakteryjne == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwgrzybicze == * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwkaszlowe == * → [[Napary/Działanie#Kaszel|Kaszel]] == Przeciwlękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Przeciwnowotworowe == * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] == Przeciwskurczowe == * [[Napary/Rozmaryn|Rozmaryn]] == Przeciwutleniacze == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwwirusowe == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Przeciwzapalne == Miarą stanu zapalnego jest np. poziom enzymu wskazującego na taki stan. * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] == Przeczyszczające == * [[Napary/Kruszyna pospolita|Kruszyna pospolita]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] == Przekwitanie == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Niepokalanek pospolity|Niepokalanek pospolity]] * [[Napary/Rabarbar ogrodowy|Rabarbar ogrodowy]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Malwa czarna|malwy czarnej]], [[Napary/Jasnota biała|jasnoty białej]], [[Napary/Serdecznik pospolity|serdecznika pospolitego]], [[Napary/Chmiel zwyczajny|chmielu zwyczajnego]], [[Napary/Melisa lekarska|melisy lekarskiej]] i [[Napary/Rumianek pospolity|rumianku pospolitego]] == Przemiana materii == * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Perz właściwy|Perz właściwy]] * Mieszanka z [[Napary/Pu-erh|pu-erh]], [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]] i [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] == Przeziębienie == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == R == == Regeneracja organizmu == * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Liście laurowe|Liście laurowe]] == Relaks == * → [[Napary/Działanie#Uspokojenie|Uspokojenie]] == Reumatyzm == * [[Napary/Wiązówka błotna|Wiązówka błotna]] == Rozkojarzenie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Rozkurczowe == Działanie rozkurczowe (rozluźniające) naparów dotyczy przede wszystkim mięśni gładkich przewodu pokarmowego (żołądka, jelit, dróg żółciowych). Pomaga to rozluźnić perystaltykę jelit i poprawić trawienie. Ponadto działa na mięśnie układu moczowego i macicy. * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty pieprzowej]], [[Napary/Rumianek pospolity|rumianku pospolitego]] i [[Napary/Melisa lekarska|melisy lekarskiej]] zobacz też: * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] [[#top|↑]] == S == == Samopoczucie == * → [[Napary/Działanie#Nastrój|Nastrój]] == Sen == * → [[Napary/Działanie#Bezsenność|Bezsenność]] == Serce == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Serdecznik pospolity|serdecznika pospolitego]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum (jiaogulan, ziele wieczności)]] == Skóra == Starzeniu się skory przeciwdziałają napary z ziół zawierających [[Napary/Pomoc#P|antyoksydanty]]. Na dobrą strukturę oraz wygląd skóry wpływają m. in. zioła bogate w [[Napary/Pomoc#K|krzem]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Skupienie == * → [[Napary/Działanie#Sprawność umysłowa||Sprawność umysłowa|]] == Skurcz żołądka == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] zobacz też: * → [[Napary/Działanie#Ból żołądka|Ból żołądka]] * → [[Napary/Działanie#Trawienie|Trawienie]] * → Działanie [[Napary/Działanie#Rozkurczowe|rozkurczowe]] == Sprawność umysłowa == [[Napary/Herbata zielona|Herbata zielona]] i [[Napary/Herbata chińska#Herbata chińska czarna|czarna]] prawdopodobnie mogą obniżyć ryzyko demencji o 16%. Wspomagają pracę mózgu, ponieważ zawierają [[Napary/Pomoc#F|flawonoidy]] i [[Napary/Pomoc#L|L-teaninę]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Śnieżyczka przebiśnieg|Śnieżyczka przebiśnieg]] * [[Napary/Piwonia biała|Piwonia biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] == Stan zapalny jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Stany lękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Stawy == Przy chorobach zwyrodnieniowych stawów pomagają zioła działające [[Napary/Działanie#Przeciwzapalnie|przeciwzapalnie]], [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]] oraz [[Napary/Działanie#Przeciwutleniacze|przeciwutleniająco]]. Wspierająco działają również zioła zawierające [[Napary/Pomoc#K|krzemionkę]]. * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Rdest ptasi|Rdest ptasi]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czarci pazur|Czarci pazur]] * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Stres == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Melisa lekarska|Melisa lekarska]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] [[#top|↑]] == Ś == == Ściągające == Substancje działające ściągająco (kontrakcyjnie, adstryngentnie) pomagają zwężać pory, redukując obrzęki i jednocześnie oczyszczając skórę. Działają również lekko przeciwzapalnie. * [[Napary/Borówka brusznica|Borówka brusznica]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Dąb omszony|Dąb omszony]]<ref>[https://leksykon.com.pl/tag/dzialanie-sciagajace/ Leksykon]</ref><ref>[https://leksykon.com.pl/leksykon-substancji/dab-omszony/interakcje/ Leksykon]</ref> * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] [[#top|↑]] == T == == Toksyny == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Trawienie == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Pu-erh|Pu-erh]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Melisa lekarska|melisy lekarskiej]], [[Napary/Mięta pieprzowa|mięty pieprzowej]] i [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] * Mieszanka z [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] zobacz też: * → [[Napary/Działanie#Nieżyt żołądka|Nieżyt żołądka]] * → [[Napary/Działanie#Nudności|Nudności]] * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] * → [[Napary/Działanie#Wzdęcia|Wzdęcia]] * → [[Napary/Działanie#Zgaga|Zgaga]] == Trądzik == === Trądzik młodzieńczy === Najskuteczniejsze zioła na trądzik młodzieńczy mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]] i [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]]. Terapie ziołowe nie od razu przynoszą widoczne rezultaty. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Łopian większy|Łopian większy]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Perz właściwy|Perz właściwy]] === Trądzik różowaty === * [[Napary/Róża dzika|Róża dzika]] == Trzustka == Prawidłową prace trzustki wspomagają napary z roślin zawierających [[Napary/Pomoc#G|gorycze (substancje gorzkie)]]. * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Goryczka żółta|Goryczka żółta]] [[#top|↑]] == U == == Uderzenia gorąca == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Układ krwionośny == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] == Układ moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Uspokojenie == * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Gojnik|Gojnik]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] * Mieszanka z [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] == Uszczelniające == * [[Napary/Pokrzywa|Pokrzywa]] [[#top|↑]] == W == == Wątroba == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Goryczka żółta|Goryczka żółta]] == Włosy == Na dobrą strukturę oraz wygląd włosów wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Wrzody żołądka == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Wykrztuszanie == * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Wymioty == * → [[Napary/Działanie#Nudności|Nudności]] == Wypadanie włosów == * → [[Napary/Działanie#Włosy|Włosy]] == Wzdęcia == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Wzmacnianie naczyń krwionośnych == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] [[#top|↑]] == Z == == Zapalenie oskrzeli == * → [[Napary/Działanie#Oskrzela|Oskrzela]] == Zapalenie pęcherza == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Zapalenie stawów == * → [[Napary/Działanie#Stawy|Stawy]] == Zaparcia == * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zgaga == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Babka lancetowata|Babka lancetowata]] * Mieszanka z [[Napary/Prawoślaz lekarski|prawoślazu lekarskiego]] i [[Napary/Rdest wielokwiatowy|rdestu wielokwiatowego]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zmęczenie == * → [[Napary/Działanie#Energia|Energia]] [[#top|↑]] == Ż == == Żółciopędne == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Brzoza|Brzoza]] [[#top|↑]] == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 4impwrkqv892etysgif93il3nj9l849 541032 541031 2026-04-27T18:32:13Z EdytaT 2664 /* Przeciwzapalne */ 541032 wikitext text/x-wiki {{Podrozdział|[[Napary]]|Działanie}} {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} {{SpisAlfabetyczny}} == A == == Afrodyzjak == * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Alergie == Ulgę przy alergiach mogą przynieść napary z ziół zawierających substancje redukujące [[Napary/Pomoc#H|histaminę]]. Należy przy tym koniecznie zwrócić uwagę, że niektóre z ziół ogólnie zalecanych przeciw alergiom same mogą być ich przyczyną u osób uczulonych na ten rodzaj roślin! * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Głóg dwuszyjkowy|Głóg dwuszyjkowy]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Lakownica żółtawa|Lakownica żółtawa (Reishi, Ling Zhi)]] == Alzheimer == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Anoreksja == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] == Antydepresant == * → [[Napary/Działanie#Depresja|Depresja]] == Antyoksydant == * → [[Napary/Działanie#Przeciwutleniacze|Przeciwutleniacze]] == Anty-aging == Dla seniorów prozdrowotnie działają głównie zioła o właściwościach [[Napary/Pomoc#P|antyoksydacyjnych]], neutralizujących [[Napary/Pomoc#W|wolne rodniki]], wspierających produkcję [[Napary/Pomoc#K|kolagenu]] oraz regenerujących komórki. * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Róża dzika|Róża dzika]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] == Apetyt == * → [[Napary/Działanie#Brak apetytu|Brak apetytu]] * → [[Napary/Działanie#Odchudzanie|Nadmierny apetyt]] == Artretyzm == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Artroza == * → [[Napary/Działanie#Stawy|Stawy]] == Astma == * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] [[#top|↑]] == B == == Bakteriobójcze == * → [[Napary/Działanie#Przeciwbakteryjne|Przeciwbakteryjne]] == Bezsenność == * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Chmiel|Chmiel]] jest często kojarzony z uczuciem odprężenia i zmęczenia i może pomóc przespać noc. * Mieszanka z [[Napary/Rumianek pospolity|rumianku]], [[Napary/Pokrzywa|pokrzywy]], [[Napary/Koper włoski|kopru włoskiego]], [[Napary/Lawenda wąskolistna|lawendy]] i [[Napary/Mięta pieprzowa|mięty]] == Biegunka == Przy biegunce pomocne są substancje roślinne działające [[Napary/Działanie#Ściągające|ściągająco]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] i [[Napary/Działanie#Przeciwskurczowe|przeciwskurczowo]] oraz zawierające [[Napary/Pomoc#G|garbniki]]. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Jeżyna fałdowana|Jeżyna fałdowana]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Borelioza == Do wspomagania terapii boreliozy wykorzystuje się zioła, które mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] oraz wzmacniające [[Napary/Działanie#Odporność|układ odpornościowy]]. * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] * [[Napary/Szczeć pospolita|Szczeć pospolita]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] * [[Napary/Cryptolepis sanguinolenta|Cryptolepis sanguinolenta]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Brodziuszka wiechowata|Brodziuszka wiechowata]] (Andrographis paniculata) * [[Napary/Traganek błoniasty|Traganek błoniasty]] * [[Napary/Kolcorośl lecznicza|Kolcorośl lecznicza (Sarsaparilla)]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] (czosnek) == Ból brzucha == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] == Ból gardła == * [[Napary/Szałwia lekarska|Szałwia lekarska]] == Ból głowy == * → [[Napary/Działanie#Migrena|Migrena]] == Ból zęba == * [[Napary/Goździki|Goździki]] == Ból żołądka == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] == Bóle menstruacyjne == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] == Brak apetytu == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Traganek błoniasty|Traganek błoniasty]] [[#top|↑]] == C == == Choroby neurodegeneracyjne == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Cera == * → [[Napary/Działanie#Skóra|Skóra]] == Cholesterol == * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Chrypka == * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Cukrzyca == * [[Napary/Morwa biała|Morwa biała]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Gymnema sylvestre|Gymnema sylvestre (gumnar)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] [[#top|↑]] == D == == Demencja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Depresja == Niektóre zioła pomagają hamować rozwój depresji. * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Melisa lekarska|Melisa lekarska]] == Detoksykacja == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Dezorientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Dna moczanowa == * [[Napary/Perz właściwy|Perz właściwy]] == Dostarczanie witamin i minerałów == * większość naparów == Drogi moczowe == Przy dolegliwościach pęcherza czy cewki moczowej trzeba przede wszystkim zwiększyć ilość wypijanych płynów. Częste oddawanie moczu sprzyja wypłukiwaniu bakterii z dróg moczowych. Należy pić co najmniej 2,5-3 litrów wody dziennie. Ponadto można sięgnąć po herbatki ziołowe o działaniu [[Napary/Działanie#Moczopędne|moczopędnym]], [[Napary/Działanie#przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbakteryjne|antybakteryjnym]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Mącznica lekarska|Mącznica lekarska]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] == Drogi oddechowe == Na dolegliwości dróg oddechowych polecane są napary z ziół o działaniu [[Napary/Działanie#Wykrztuszanie|wykrztuśnym]], rozkurczającym oskrzela i przeciwzapalnym. * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Podbiał pospolity|Podbiał pospolity]] * [[Napary/Pierwiosnek lekarski|Pierwiosnek lekarski]] * [[Napary/Eukaliptus gałkowy|Eukaliptus gałkowy]] * [[Napary/Babka lancetowata|Babka lancetowata]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] * [[Napary/Jasnota purpurowa|Jasnota purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Drogi żółciowe == * → [[Napary/Działanie#Żółciopędne|Żółciopędne]] == Dyspepsja == * → [[Napary/Działanie#Trawienie|Trawienie]] == Dziąsła == * → [[Napary/Działanie#Jama ustna|Jama ustna]] [[#top|↑]] == E == == Energia == Napoje zawierające [[Napary/Pomoc#K|kofeinę]] działają energetyzująco. * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Matcha|Matcha]] * [[Napary/Sencha|Sencha]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Ulung|Ulung]] * [[Napary/Herbata chińska#Herbata chińska biała|Herbata biała]] * [[Napary/Imbir lekarski|Imbir lekarski]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] [[#top|↑]] == F == == Fotouczulające == {{Uwaga|Ziół fotouczulających nie należy pić latem!}} Zioła fotouczulające w połączeniu z działaniem promieni słonecznych na skórę mogą powodować swędzącą wysypkę. * [[Napary/Arnika górska|Arnika górska]] * [[Napary/Nawłoć pospolita|Nawłoć pospolita]] * [[Napary/Słonecznik zwyczajny|Słonecznik zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wrotycz pospolity|Wrotycz pospolity]] * [[Napary/Bylica pospolita|Bylica pospolita]] * [[Napary/Aminek egipski|Aminek egipski]] (fototoksyczne) * [[Napary/Aminek wielki|Aminek wielki]] (fototoksyczne) * [[Napary/Dzięgiel litwor|Dzięgiel litwor]] (fototoksyczne); * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] (fototoksyczne) * [[Napary/Ruta zwyczajna|Ruta zwyczajna]] (fototoksyczne) == G == == Gorączka == * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == H == == Hemoroidy == * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == I == == Infekcja dróg moczowych == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Inkontynencja == * [[Napary/Rooibos|Rooibos]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Irygacje == * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] [[#top|↑]] == J == == Jama ustna == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Tasznik pospolity|Tasznik pospolity]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] [[#top|↑]] == K == == Kac == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Kamica nerkowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kamica żółciowa == * [[Napary/Perz właściwy|Perz właściwy]] == Kaszel == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Katar sienny == * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Koncentracja == * [[Napary/Gojnik|Gojnik]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Przetacznik leśny|Przetacznik leśny]] * [[Napary/Werbena pospolita|Werbena pospolita]] zobacz też: * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Kości == * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Epimedium wielkokwiatowe|Epimedium wielkokwiatowe]] == Krążenie == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Rdestowiec ostrokończysty|Rdestowiec ostrokończysty]] == Krwawienie menstruacyjne == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Krwawienie z nosa == * [[Napary/Tasznik pospolity|Tasznik pospolity]] [[#top|↑]] == L == == Laktacja == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Lęk == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Melisa lekarska|Melisa lekarska]] [[#top|↑]] == M == == Mdłości == * → [[Napary/Działanie#Nudności|Nudności]] == Menopauza == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Menstruacja == * → [[Napary/Działanie#Miesiączka|Miesiączka]] == Metabolizm == * → [[Napary/Działanie#Przemiana materii|Przemiana materii]] == Miażdżyca == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] == Miesiączka == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Mięśnie == * [[Napary/Mirt cytrynowy|Mirt cytrynowy]] == Migrena == Herbatki ziołowe działają na ból głowy przez kombinacje składników [[Napary/Działanie#Przeciwbólowe|przeciwbólowych]], [[Napary/Działanie#Przeciwzapalne|przeciwzapalnych]] i [[Napary/Działanie#Rozkurczowe|rozkurczowych]]. * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Goździki|Goździki]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] * [[Napary/Ostryż długi|Ostryż dług (kurkuma)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * '''Uwaga:''' napary z [[Napary/Miłorząb dwuklapowy|miłorzębu]], [[Napary/Żeń-szeń|żeń-szenia]], [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] i [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] mogą wzmóc ból głowy. == Moczopędne == Pijąc herbatki o działaniu moczopędnym (diuretycznym) trzeba jednocześnie pić wystarczającą ilość wody, by uzupełniać wypłukiwane minerały! Dłuższe picie naparów moczopędnych może prowadzić np. do utraty [[Napary/Pomoc#P|potasu]] z organizmu. Warto więc kontrolować jego poziom we krwi. Właściwości moczopędne ziół pomagają też usuwać [[Napary/Pomoc#K|kwas moczowy]] powodujący artretyzm ([[Napary/Działanie#Dna moczanowa|dna moczanowa]]) oraz wspierają [[Napary/Działanie#Odchudzanie|odchudzanie]]. * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Lubczyk ogrodowy|Lubczyk ogrodowy]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] [[#top|↑]] == N == == Naczynia krwionośne == * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] == Nadciśnienie == * [[Napary/Serdecznik pospolity|Serdecznik pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Ketmia szczawiowa|Ketmia szczawiowa (hibiskus)]] * [[Napary/Oliwka europejska|Oliwka europejska]] == Nadmierny apetyt == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Nadwaga == * → [[Napary/Działanie#Odchudzanie|Odchudzanie]] == Napięcie przedmiesiączkowe == * [[Napary/Tasznik pospolity|Tasznik pospolity]] == Napotne == Zioła działające napotnie pomagają w obniżeniu [[Napary/Działanie#Gorączka|gorączki]] i łagodzeniu objawów [[Napary/Działanie#Przeziębienie|przeziębienia]]. * [[Napary/Lipa drobnolistna|Lipa drobnolistna]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Malina właściwa|Malina właściwa]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] == Nasiadówki == * [[Napary/Dąb|Dąb]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] == Nastrój == * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Kardamon malabarski|Kardamon malabarski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Nauka == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Nawadnianie organizmu == * wszystkie napary == Nerki == Zioła [[Napary/Działanie#Moczopędne|moczopędne]] wspomagają pracę nerek. * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Perz właściwy|Perz właściwy]] == Nerwobóle == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Imbir lekarski|Imbir lekarski]] == Nerwowość == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Kozłek lekarski|Kozłek lekarski (waleriana)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Lipa|Kwiaty lipy]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Neurodegeneracja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Neuropatia == * → [[Napary/Działanie#Nerwobóle|Nerwobóle]] == Niestrawność == * → [[Napary/Działanie#Trawienie|Trawienie]] == Nieświeży oddech == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] == Nietrzymanie moczu == * → [[Napary/Działanie#Inkontynencja|Inkontynencja]] == Nieżyt żołądka == * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rzewień_palczasty|Rzewień palczasty (rabarbar dłoniasty))]] * [[Napary/Krwiściąg lekarski|Krwiściąg lekarski]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Nocne poty == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Nudności == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Mieszanki#Napar z anyżu, kopru włoskiego i kminku|Mieszanka z anyżu, kopru włoskiego i kminku]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] [[#top|↑]] == O == == Odchudzanie == Składniki ziół i roślin wspomagających odchudzanie są różnorodne: stymulujące spalanie tkanki tłuszczowej, oczyszczające organizm z [[Napary/Działanie#Oczyszczanie z toksyn|toksyn]], [[Napary/Działanie#moczopędne|moczopędne]], pobudzające proces [[Napary/Działanie#Trawienie|trawienia]], redukujące apetyt i chęć podjadania. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Yerba mate|Yerba mate (mate)]] * [[Napary/Rooibos|Rooibos]] * [[Napary/Berberys zwyczajny|Berberys zwyczajny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty]], [[Napary/Pokrzywa|pokrzywy]] i [[Napary/Mniszek lekarski|mniszka]] == Oczyszczanie z toksyn == Detoksykacja organizmu (detoks) to proces fizjologiczny, w którym organizm (głównie wątroba, nerki, skóra i płuca) usuwa zbędne produkty przemiany materii oraz neutralizuje szkodliwe substancje. Stosowanie odpowiednich ziół wspiera np. detoksykację wątroby. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] – oczyszcza organizm z toksyn, działa odtruwająco i lekko moczopędnie, stymuluje metabolizm. * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Ostropest plamisty|Ostropest plamisty]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Odporność == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] * [[Napary/Jeżówka purpurowa|Jeżówka purpurowa]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Szałwia lekarska|szałwii]], [[Napary/Macierzanka tymianek|tymianku]] i [[Napary/Rozmaryn|rozmarynu]] == Odrobaczanie == * → [[Napary/Działanie#Pasożyty|Pasożyty]] == Orientacja == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Oskrzela == * → [[Napary/Działanie#Drogi oddechowe|oddechowe]] == Osteoporoza == * → [[Napary/Działanie#Kości|Kości]] == Otępienie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] [[#top|↑]] == P == == Pamięć == Stuprocentowy sok z pomarańczy prawdopodobnie redukuje ryzyko pogarszania pamięci o 36%. * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Pasożyty == * [[Napary/Bylica piołun|Bylica piołun (piołun)]] * [[Napary/Goździki|Goździki]] * [[Napary/Lebiodka pospolita|Lebiodka pospolita (oregano)]] == Paznokcie == Na dobrą strukturę oraz wygląd paznokci wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Pęcherz moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Płukanie jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Podagra == * → [[Napary/Działanie#Dna moczanowa|Dna moczanowa]] == Prostata == * [[Napary/Pokrzywa|Pokrzywa]] == Przeciwbólowe == * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwbakteryjne == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Goździki|Goździki]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Bylica roczna|Bylica roczna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] == Przeciwgrzybicze == * [[Napary/Goździki|Goździki]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwkaszlowe == * → [[Napary/Działanie#Kaszel|Kaszel]] == Przeciwlękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Przeciwnowotworowe == * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] == Przeciwskurczowe == * [[Napary/Rozmaryn|Rozmaryn]] == Przeciwutleniacze == * [[Napary/Melisa lekarska|Melisa]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Czarnuszka siewna|Czarnuszka siewna]] == Przeciwwirusowe == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] == Przeciwzapalne == Miarą stanu zapalnego jest np. poziom enzymu wskazującego na taki stan. * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna (brahmi)]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Krwawnik pospolity|Krwawnik pospolity]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] == Przeczyszczające == * [[Napary/Kruszyna pospolita|Kruszyna pospolita]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] == Przekwitanie == * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Koniczyna czerwona|Koniczyna czerwona]] * [[Napary/Przywrotnik pospolity|Przywrotnik pospolity]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Niepokalanek pospolity|Niepokalanek pospolity]] * [[Napary/Rabarbar ogrodowy|Rabarbar ogrodowy]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Malwa czarna|malwy czarnej]], [[Napary/Jasnota biała|jasnoty białej]], [[Napary/Serdecznik pospolity|serdecznika pospolitego]], [[Napary/Chmiel zwyczajny|chmielu zwyczajnego]], [[Napary/Melisa lekarska|melisy lekarskiej]] i [[Napary/Rumianek pospolity|rumianku pospolitego]] == Przemiana materii == * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Perz właściwy|Perz właściwy]] * Mieszanka z [[Napary/Pu-erh|pu-erh]], [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]] i [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] == Przeziębienie == * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wrotycz maruna|Wrotycz maruna (złocień maruna)]] [[#top|↑]] == R == == Regeneracja organizmu == * [[Napary/Czystek kreteński|Czystek kreteński]] * [[Napary/Liście laurowe|Liście laurowe]] == Relaks == * → [[Napary/Działanie#Uspokojenie|Uspokojenie]] == Reumatyzm == * [[Napary/Wiązówka błotna|Wiązówka błotna]] == Rozkojarzenie == * → [[Napary/Działanie#Sprawność umysłowa|Sprawność umysłowa]] == Rozkurczowe == Działanie rozkurczowe (rozluźniające) naparów dotyczy przede wszystkim mięśni gładkich przewodu pokarmowego (żołądka, jelit, dróg żółciowych). Pomaga to rozluźnić perystaltykę jelit i poprawić trawienie. Ponadto działa na mięśnie układu moczowego i macicy. * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * [[Napary/Trawa cytrynowa|Trawa cytrynowa]] * Mieszanka z [[Napary/Mięta pieprzowa|mięty pieprzowej]], [[Napary/Rumianek pospolity|rumianku pospolitego]] i [[Napary/Melisa lekarska|melisy lekarskiej]] zobacz też: * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] [[#top|↑]] == S == == Samopoczucie == * → [[Napary/Działanie#Nastrój|Nastrój]] == Sen == * → [[Napary/Działanie#Bezsenność|Bezsenność]] == Serce == * [[Napary/Głóg jednoszyjkowy|Głóg jednoszyjkowy]] * [[Napary/Pokrzywa|Pokrzywa]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Serdecznik pospolity|serdecznika pospolitego]] * Mieszanka z [[Napary/Wiązówka błotna|wiązówki błotnej]] i [[Napary/Gynostemma pentaphyllum|Gynostemma pentaphyllum (jiaogulan, ziele wieczności)]] == Skóra == Starzeniu się skory przeciwdziałają napary z ziół zawierających [[Napary/Pomoc#P|antyoksydanty]]. Na dobrą strukturę oraz wygląd skóry wpływają m. in. zioła bogate w [[Napary/Pomoc#K|krzem]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] == Skupienie == * → [[Napary/Działanie#Sprawność umysłowa||Sprawność umysłowa|]] == Skurcz żołądka == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] zobacz też: * → [[Napary/Działanie#Ból żołądka|Ból żołądka]] * → [[Napary/Działanie#Trawienie|Trawienie]] * → Działanie [[Napary/Działanie#Rozkurczowe|rozkurczowe]] == Sprawność umysłowa == [[Napary/Herbata zielona|Herbata zielona]] i [[Napary/Herbata chińska#Herbata chińska czarna|czarna]] prawdopodobnie mogą obniżyć ryzyko demencji o 16%. Wspomagają pracę mózgu, ponieważ zawierają [[Napary/Pomoc#F|flawonoidy]] i [[Napary/Pomoc#L|L-teaninę]]. * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Herbata chińska#Herbata chińska czarna|Herbata czarna]] * [[Napary/Różeniec górski|Różeniec górski]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Miłorząb dwuklapowy|Miłorząb dwuklapowy (ginkgo)]] * [[Napary/Żeń-szeń|Żeń-szeń (wszechlek)]] * [[Napary/Rozmaryn|Rozmaryn]] * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Wąkrotka azjatycka|Wąkrotka azjatycka (gotu kola)]] * [[Napary/Tarczyca bajkalska|Tarczyca bajkalska]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Śnieżyczka przebiśnieg|Śnieżyczka przebiśnieg]] * [[Napary/Piwonia biała|Piwonia biała]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] == Stan zapalny jamy ustnej == * → [[Napary/Działanie#Jama ustna|Jama ustna]] == Stany lękowe == * → [[Napary/Działanie#Lęk|Lęk]] == Stawy == Przy chorobach zwyrodnieniowych stawów pomagają zioła działające [[Napary/Działanie#Przeciwzapalnie|przeciwzapalnie]], [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]] oraz [[Napary/Działanie#Przeciwutleniacze|przeciwutleniająco]]. Wspierająco działają również zioła zawierające [[Napary/Pomoc#K|krzemionkę]]. * [[Napary/Imbir lekarski|Imbir lekarski]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Ostryż długi|Ostryż długi (kurkuma)]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Wiązówka błotna|Wiązówka błotna]] * [[Napary/Wierzba biała|Wierzba biała]] * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Brzoza|Brzoza]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Rdest ptasi|Rdest ptasi]] * [[Napary/Herbata zielona|Herbata zielona]] * [[Napary/Czarci pazur|Czarci pazur]] * [[Napary/Czepota puszysta|Czepota puszysta (koci pazur, wilkakora)]] * [[Napary/Porzeczka czarna|Porzeczka czarna]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] == Stres == * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Bakopa drobnolistna|Bakopa drobnolistna]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Melisa lekarska|Melisa lekarska]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] [[#top|↑]] == Ś == == Ściągające == Substancje działające ściągająco (kontrakcyjnie, adstryngentnie) pomagają zwężać pory, redukując obrzęki i jednocześnie oczyszczając skórę. Działają również lekko przeciwzapalnie. * [[Napary/Borówka brusznica|Borówka brusznica]] * [[Napary/Borówka czarna|Borówka czarna]] * [[Napary/Dąb omszony|Dąb omszony]]<ref>[https://leksykon.com.pl/tag/dzialanie-sciagajace/ Leksykon]</ref><ref>[https://leksykon.com.pl/leksykon-substancji/dab-omszony/interakcje/ Leksykon]</ref> * [[Napary/Jeżyna krzewiasta|Jeżyna krzewiasta]] [[#top|↑]] == T == == Toksyny == * → [[Napary/Działanie#Oczyszczanie z toksyn|Oczyszczanie z toksyn]] == Trawienie == * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Dziurawiec zwyczajny|Dziurawiec zwyczajny]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Lebiodka majeranek|Lebiodka majeranek (majeranek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Bazylia pospolita|Bazylia pospolita]] * [[Napary/Pu-erh|Pu-erh]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * Mieszanka z [[Napary/Melisa lekarska|melisy lekarskiej]], [[Napary/Mięta pieprzowa|mięty pieprzowej]] i [[Napary/Dziurawiec zwyczajny|dziurawca zwyczajnego]] * Mieszanka z [[Napary/Rumianek pospolity|rumianku pospolitego]], [[Napary/Kminek zwyczajny|kminku zwyczajnego]], [[Napary/Trawa cytrynowa|trawy cytrynowej]], [[Napary/Koper włoski|kopru włoskiego]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] zobacz też: * → [[Napary/Działanie#Nieżyt żołądka|Nieżyt żołądka]] * → [[Napary/Działanie#Nudności|Nudności]] * → [[Napary/Działanie#Skurcz żołądka|Skurcz żołądka]] * → [[Napary/Działanie#Wzdęcia|Wzdęcia]] * → [[Napary/Działanie#Zgaga|Zgaga]] == Trądzik == === Trądzik młodzieńczy === Najskuteczniejsze zioła na trądzik młodzieńczy mają właściwości [[Napary/Działanie#Przeciwbakteryjne|przeciwbakteryjne]] i [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]]. Terapie ziołowe nie od razu przynoszą widoczne rezultaty. * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Łopian większy|Łopian większy]] * [[Napary/Nagietek lekarski|Nagietek lekarski]] * [[Napary/Bez czarny|Bez czarny]] * [[Napary/Perz właściwy|Perz właściwy]] === Trądzik różowaty === * [[Napary/Róża dzika|Róża dzika]] == Trzustka == Prawidłową prace trzustki wspomagają napary z roślin zawierających [[Napary/Pomoc#G|gorycze (substancje gorzkie)]]. * [[Napary/Mniszek lekarski|Mniszek lekarski]] * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Mięta pieprzowa|Mięta pieprzowa]] * [[Napary/Szałwia lekarska|Szałwia lekarska]] * [[Napary/Goryczka żółta|Goryczka żółta]] [[#top|↑]] == U == == Uderzenia gorąca == * → [[Napary/Działanie#Przekwitanie|Przekwitanie]] == Układ krwionośny == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] == Układ moczowy == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Uspokojenie == * [[Napary/Melisa lekarska|Melisa lekarska]] * [[Napary/Lawenda wąskolistna|Lawenda wąskolistna]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Gojnik|Gojnik]] * [[Napary/Kadzidłowiec indyjski|Kadzidłowiec indyjski]] * [[Napary/Kocimiętka właściwa|Kocimiętka właściwa]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Mięta pieprzowa|mięty pieprzowej]] * Mieszanka z [[Napary/Lawenda wąskolistna|lawendy wąskolistnej]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] * Mieszanka z [[Napary/Kozłek lekarski|kozłka lekarskiego (waleriany)]] i [[Napary/Wiązówka błotna|wiązówki błotnej]] == Uszczelniające == * [[Napary/Pokrzywa|Pokrzywa]] [[#top|↑]] == W == == Wątroba == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Perz właściwy|Perz właściwy]] * [[Napary/Goryczka żółta|Goryczka żółta]] == Włosy == Na dobrą strukturę oraz wygląd włosów wpływają zioła bogate w [[Napary/Pomoc#K|krzemu]]. * [[Napary/Skrzyp polny|Skrzyp polny]] * [[Napary/Pokrzywa|Pokrzywa]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] == Wrzody żołądka == * [[Napary/Lukrecja gładka|Lukrecja gładka]] == Wykrztuszanie == * [[Napary/Macierzanka tymianek|Macierzanka tymianek (tymianek)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Dziewanna drobnokwiatowa|Dziewanna drobnokwiatowa]] == Wymioty == * → [[Napary/Działanie#Nudności|Nudności]] == Wypadanie włosów == * → [[Napary/Działanie#Włosy|Włosy]] == Wzdęcia == * [[Napary/Koper włoski|Koper włoski (fenkuł)]] * [[Napary/Badian właściwy|Badian właściwy (anyż)]] * [[Napary/Wawrzyn szlachetny|Wawrzyn szlachetny (liść laurowy)]] * [[Napary/Kminek zwyczajny|Kminek zwyczajny]] * [[Napary/Fiołek trójbarwny|Fiołek trójbarwny (bratek)]] * [[Napary/Rumianek pospolity|Rumianek pospolity]] * [[Napary/Kmin rzymski|Kmin rzymski (kumin)]] * [[Napary/Bylica draganek|Bylica draganek (estragon)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Wzmacnianie naczyń krwionośnych == * → [[Napary/Działanie#Naczynia krwionośne|Naczynia krwionośne]] [[#top|↑]] == Z == == Zapalenie oskrzeli == * → [[Napary/Działanie#Oskrzela|Oskrzela]] == Zapalenie pęcherza == * → [[Napary/Działanie#Drogi moczowe|Drogi moczowe]] == Zapalenie stawów == * → [[Napary/Działanie#Stawy|Stawy]] == Zaparcia == * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zgaga == * [[Napary/Lukrecja gładka|Lukrecja gładka]] * [[Napary/Babka lancetowata|Babka lancetowata]] * Mieszanka z [[Napary/Prawoślaz lekarski|prawoślazu lekarskiego]] i [[Napary/Rdest wielokwiatowy|rdestu wielokwiatowego]] zobacz też: * → [[Napary/Działanie#Trawienie|Trawienie]] == Zmęczenie == * → [[Napary/Działanie#Energia|Energia]] [[#top|↑]] == Ż == == Żółciopędne == * [[Napary/Kuklik pospolity|Kuklik pospolity]] * [[Napary/Rzewień palczasty|Rzewień palczasty (rabarbar dłoniasty)]] * [[Napary/Brzoza|Brzoza]] [[#top|↑]] == Przypisy == {{Przypisy}} {{BrClear}} <noinclude>{{Wolumin}}</noinclude> 8kizl7d4vnvt015vzm4xdxjriszsv89 Napary/Kadzidłowiec indyjski 0 61470 541012 529010 2026-04-27T17:17:23Z EdytaT 2664 /* Kadzidłowiec indyjski */ 541012 wikitext text/x-wiki <noinclude>{{NawigacjaG | 1 = Napary | 2 = | 3 = }}</noinclude> {{Uprawa - roślina infobox | nazwa = Kadzidłowiec indyjski | obrazek = Boswellia serrata (Salai) in Kinnarsani WS, AP W IMG 5844.jpg | łacina = Boswellia serrata | nazwy = Boswellia | wikipedia = Kadzidłowiec indyjski | wikispecies = Boswellia serrata | wikisłownik = kadzidłowiec indyjski | commons = Category:Boswellia serrata }} == Kadzidłowiec indyjski == {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} * Kadzidłowiec jest drzewem, które produkuje wonną żywicę nazywaną [[w:Olibanum|olibanum]]. * Substancja czynna zawarta w żywicy kadzidłowca są [[Napary/Pomoc#K|kwasy bosweliowe]] (substancja [[Napary/Pomoc#A|AKBA]] o działaniu [[Napary/Działanie#Przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbólowe|przeciwbólowym]]). * Ekstrakt z kadzidłowca działa [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] (w stawach, kościach, mięśniach i jelitach) , [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]], uspokajająco, a także [[Napary/Działanie#Przeciwnowotworowe|przeciwnowotworowo]]. * Polecany jest osobom cierpiącym na [[Napary/Działanie#Stawy|choroby zwyrodnieniowe stawów]]. * Pomaga przy astmie czy nieswoistym zapaleniu jelit. == Przeciwwskazania == * Możliwe skutki uboczne to nudności, zgaga, biegunka czy wysypka. * Może również zwiększyć przepływ krwi w macicy, tym samym nasilając krwawienie podczas miesiączki lub przyczynić się do poronienia. * Kadzidłowiec nie jest wskazany dla kobiet w ciąży i karmiących piersią, dla dzieciom oraz dla osób z chorobami nerek * Należy zwrócić uwagę na interakcje z lekami, zwłaszcza niesteroidowymi lekami przeciwzapalnymi (NLPZ), jak ibuprofen czy aspiryna. == Surowiec zielarski == [[Grafika:Boswellia Resin Close Up.jpg|thumb]] * Do naparów stosuje się żywicę ''Boswelii serrata'' w postaci surowej lub mielonej. * Jest szczególnie polecany w postaci ekstraktu. == Napary z kadzidłowca indyjskiego == === Wyciąg z kadzidłowca indyjskiego === * Użyj 1-2 gramów żywicy na 100 ml wrzątku. * Pozostaw żywicę w gorącej wodzie na 10-15 minut. * Usuń kawałki żywicy, aby uzyskać czysty napar. * Napar najlepiej pić po przestudzeniu. === Mieszanki === * Kadzidłowiec, [[Napary/Ostryż długi|ostryż długi (kurkuma)]], [[Napary/Imbir lekarski|imbir]]. {{Przypisy}} <!-- Skoczylas 30.12.2025 --> <noinclude>{{Nawigacja | 1 = Napary | 2 = | 3 = }}</noinclude> n5i0j2g6434ncafjkfarjzbdc2ryj5k 541021 541012 2026-04-27T17:26:09Z EdytaT 2664 541021 wikitext text/x-wiki {{Podrozdział|[[Napary]]<br>Badian właściwy (anyż)}} {{Uprawa - roślina infobox | nazwa = Kadzidłowiec indyjski | obrazek = Boswellia serrata (Salai) in Kinnarsani WS, AP W IMG 5844.jpg | łacina = Boswellia serrata | nazwy = Boswellia | wikipedia = Kadzidłowiec indyjski | wikispecies = Boswellia serrata | wikisłownik = kadzidłowiec indyjski | commons = Category:Boswellia serrata }} == Kadzidłowiec indyjski == {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} * Kadzidłowiec jest drzewem, które produkuje wonną żywicę nazywaną [[w:Olibanum|olibanum]]. * Substancja czynna zawarta w żywicy kadzidłowca są [[Napary/Pomoc#K|kwasy bosweliowe]] (substancja [[Napary/Pomoc#A|AKBA]] o działaniu [[Napary/Działanie#Przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbólowe|przeciwbólowym]]). * Ekstrakt z kadzidłowca działa [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] (w stawach, kościach, mięśniach i jelitach) , [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]], uspokajająco, a także [[Napary/Działanie#Przeciwnowotworowe|przeciwnowotworowo]]. * Polecany jest osobom cierpiącym na [[Napary/Działanie#Stawy|choroby zwyrodnieniowe stawów]]. * Pomaga przy astmie czy nieswoistym zapaleniu jelit. == Przeciwwskazania == * Możliwe skutki uboczne to nudności, zgaga, biegunka czy wysypka. * Może również zwiększyć przepływ krwi w macicy, tym samym nasilając krwawienie podczas miesiączki lub przyczynić się do poronienia. * Kadzidłowiec nie jest wskazany dla kobiet w ciąży i karmiących piersią, dla dzieciom oraz dla osób z chorobami nerek * Należy zwrócić uwagę na interakcje z lekami, zwłaszcza niesteroidowymi lekami przeciwzapalnymi (NLPZ), jak ibuprofen czy aspiryna. == Surowiec zielarski == [[Grafika:Boswellia Resin Close Up.jpg|thumb]] * Do naparów stosuje się żywicę ''Boswelii serrata'' w postaci surowej lub mielonej. * Jest szczególnie polecany w postaci ekstraktu. == Napary z kadzidłowca indyjskiego == === Wyciąg z kadzidłowca indyjskiego === * Użyj 1-2 gramów żywicy na 100 ml wrzątku. * Pozostaw żywicę w gorącej wodzie na 10-15 minut. * Usuń kawałki żywicy, aby uzyskać czysty napar. * Napar najlepiej pić po przestudzeniu. === Mieszanki === * Kadzidłowiec, [[Napary/Ostryż długi|ostryż długi (kurkuma)]], [[Napary/Imbir lekarski|imbir]]. {{Przypisy}} <!-- Skoczylas 30.12.2025 --> h8n3gwifvb0pl2ee4jhyjwogfn652ta 541025 541021 2026-04-27T18:16:22Z EdytaT 2664 541025 wikitext text/x-wiki {{Podrozdział|[[Napary]]<br>Kadzidłowiec indyjski (olibanum)}} {{Uprawa - roślina infobox | nazwa = Kadzidłowiec indyjski | obrazek = Boswellia serrata (Salai) in Kinnarsani WS, AP W IMG 5844.jpg | łacina = Boswellia serrata | nazwy = Boswellia | wikipedia = Kadzidłowiec indyjski | wikispecies = Boswellia serrata | wikisłownik = kadzidłowiec indyjski | commons = Category:Boswellia serrata }} == Kadzidłowiec indyjski (olibanum) == {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} * Kadzidłowiec jest drzewem, które produkuje wonną żywicę nazywaną [[w:Olibanum|olibanum]]. * Substancja czynna zawarta w żywicy kadzidłowca są [[Napary/Pomoc#K|kwasy bosweliowe]] (substancja [[Napary/Pomoc#A|AKBA]] o działaniu [[Napary/Działanie#Przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbólowe|przeciwbólowym]]). * Ekstrakt z kadzidłowca działa [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] (w stawach, kościach, mięśniach i jelitach) , [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]], uspokajająco, a także [[Napary/Działanie#Przeciwnowotworowe|przeciwnowotworowo]]. * Polecany jest osobom cierpiącym na [[Napary/Działanie#Stawy|choroby zwyrodnieniowe stawów]]. * Pomaga przy astmie czy nieswoistym zapaleniu jelit. == Przeciwwskazania == * Możliwe skutki uboczne to nudności, zgaga, biegunka czy wysypka. * Może również zwiększyć przepływ krwi w macicy, tym samym nasilając krwawienie podczas miesiączki lub przyczynić się do poronienia. * Kadzidłowiec nie jest wskazany dla kobiet w ciąży i karmiących piersią, dla dzieciom oraz dla osób z chorobami nerek * Należy zwrócić uwagę na interakcje z lekami, zwłaszcza niesteroidowymi lekami przeciwzapalnymi (NLPZ), jak ibuprofen czy aspiryna. == Surowiec zielarski == [[Grafika:Boswellia Resin Close Up.jpg|thumb]] * Do naparów stosuje się żywicę ''Boswelii serrata'' w postaci surowej lub mielonej. * Jest szczególnie polecany w postaci ekstraktu. == Napary z kadzidłowca indyjskiego == === Wyciąg z kadzidłowca indyjskiego === * Użyj 1-2 gramów żywicy na 100 ml wrzątku. * Pozostaw żywicę w gorącej wodzie na 10-15 minut. * Usuń kawałki żywicy, aby uzyskać czysty napar. * Napar najlepiej pić po przestudzeniu. === Mieszanki === * Kadzidłowiec, [[Napary/Ostryż długi|ostryż długi (kurkuma)]], [[Napary/Imbir lekarski|imbir]]. {{Przypisy}} <!-- Skoczylas 30.12.2025 --> aiyqlhwg53qtg36wje79052kc38fdeu 541027 541025 2026-04-27T18:19:09Z EdytaT 2664 541027 wikitext text/x-wiki {{Podrozdział|[[Napary]]<br>Kadzidłowiec indyjski (olibanum)}} {{Uprawa - roślina infobox | nazwa = Kadzidłowiec indyjski | obrazek = Boswellia serrata (Salai) in Kinnarsani WS, AP W IMG 5844.jpg | łacina = Boswellia serrata | nazwy = boswellia, olibanum, shallaki | wikipedia = Kadzidłowiec indyjski | wikispecies = Boswellia serrata | wikisłownik = kadzidłowiec indyjski | commons = Category:Boswellia serrata }} == Kadzidłowiec indyjski (olibanum) == {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} * Kadzidłowiec jest drzewem, które produkuje wonną żywicę nazywaną [[w:Olibanum|olibanum]]. * Substancja czynna zawarta w żywicy kadzidłowca są [[Napary/Pomoc#K|kwasy bosweliowe]] (substancja [[Napary/Pomoc#A|AKBA]] o działaniu [[Napary/Działanie#Przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbólowe|przeciwbólowym]]). * Ekstrakt z kadzidłowca działa [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] (w stawach, kościach, mięśniach i jelitach) , [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]], uspokajająco, a także [[Napary/Działanie#Przeciwnowotworowe|przeciwnowotworowo]]. * Polecany jest osobom cierpiącym na [[Napary/Działanie#Stawy|choroby zwyrodnieniowe stawów]]. * Pomaga przy astmie czy nieswoistym zapaleniu jelit. == Przeciwwskazania == * Możliwe skutki uboczne to nudności, zgaga, biegunka czy wysypka. * Może również zwiększyć przepływ krwi w macicy, tym samym nasilając krwawienie podczas miesiączki lub przyczynić się do poronienia. * Kadzidłowiec nie jest wskazany dla kobiet w ciąży i karmiących piersią, dla dzieciom oraz dla osób z chorobami nerek * Należy zwrócić uwagę na interakcje z lekami, zwłaszcza niesteroidowymi lekami przeciwzapalnymi (NLPZ), jak ibuprofen czy aspiryna. == Surowiec zielarski == [[Grafika:Boswellia Resin Close Up.jpg|thumb]] * Do naparów stosuje się żywicę ''Boswelii serrata'' w postaci surowej lub mielonej. * Jest szczególnie polecany w postaci ekstraktu. == Napary z kadzidłowca indyjskiego == === Wyciąg z kadzidłowca indyjskiego === * Użyj 1-2 gramów żywicy na 100 ml wrzątku. * Pozostaw żywicę w gorącej wodzie na 10-15 minut. * Usuń kawałki żywicy, aby uzyskać czysty napar. * Napar najlepiej pić po przestudzeniu. === Mieszanki === * Kadzidłowiec, [[Napary/Ostryż długi|ostryż długi (kurkuma)]], [[Napary/Imbir lekarski|imbir]]. {{Przypisy}} <!-- Skoczylas 30.12.2025 --> gqfdbo7wbbjjw3yeofhvnkjxuyw8t8d 541030 541027 2026-04-27T18:29:42Z EdytaT 2664 /* Napary z kadzidłowca indyjskiego */ 541030 wikitext text/x-wiki {{Podrozdział|[[Napary]]<br>Kadzidłowiec indyjski (olibanum)}} {{Uprawa - roślina infobox | nazwa = Kadzidłowiec indyjski | obrazek = Boswellia serrata (Salai) in Kinnarsani WS, AP W IMG 5844.jpg | łacina = Boswellia serrata | nazwy = boswellia, olibanum, shallaki | wikipedia = Kadzidłowiec indyjski | wikispecies = Boswellia serrata | wikisłownik = kadzidłowiec indyjski | commons = Category:Boswellia serrata }} == Kadzidłowiec indyjski (olibanum) == {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} * Kadzidłowiec jest drzewem, które produkuje wonną żywicę nazywaną [[w:Olibanum|olibanum]]. * Substancja czynna zawarta w żywicy kadzidłowca są [[Napary/Pomoc#K|kwasy bosweliowe]] (substancja [[Napary/Pomoc#A|AKBA]] o działaniu [[Napary/Działanie#Przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbólowe|przeciwbólowym]]). * Ekstrakt z kadzidłowca działa [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] (w stawach, kościach, mięśniach i jelitach) , [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]], uspokajająco, a także [[Napary/Działanie#Przeciwnowotworowe|przeciwnowotworowo]]. * Polecany jest osobom cierpiącym na [[Napary/Działanie#Stawy|choroby zwyrodnieniowe stawów]]. * Pomaga przy astmie czy nieswoistym zapaleniu jelit. == Przeciwwskazania == * Możliwe skutki uboczne to nudności, zgaga, biegunka czy wysypka. * Może również zwiększyć przepływ krwi w macicy, tym samym nasilając krwawienie podczas miesiączki lub przyczynić się do poronienia. * Kadzidłowiec nie jest wskazany dla kobiet w ciąży i karmiących piersią, dla dzieciom oraz dla osób z chorobami nerek * Należy zwrócić uwagę na interakcje z lekami, zwłaszcza niesteroidowymi lekami przeciwzapalnymi (NLPZ), jak ibuprofen czy aspiryna. == Surowiec zielarski == [[Grafika:Boswellia Resin Close Up.jpg|thumb]] * Do naparów stosuje się żywicę ''Boswelii serrata'' w postaci surowej lub mielonej. * Jest szczególnie polecany w postaci ekstraktu. == Napary z kadzidłowca indyjskiego == === Wyciąg z kadzidłowca indyjskiego === * Użyj 1-2 gramów żywicy na 100 ml wrzątku. * Pozostaw żywicę w gorącej wodzie na 10-15 minut. * Usuń kawałki żywicy, aby uzyskać czysty napar. * Napar najlepiej pić po przestudzeniu. === Mieszanka na zmniejszenie stanów zapalnych === * Kadzidłowiec, [[Napary/Ostryż długi|ostryż długi (kurkuma)]]. === Mieszanka na wsparcie stawów === * Kadzidłowiec, [[Napary/Ostryż długi|ostryż długi (kurkuma)]], [[Napary/Imbir lekarski|imbir]]. {{Przypisy}} <!-- Skoczylas 30.12.2025 --> 9vj49lsmfzclkb8azyeetrmkmx4x3oy 541068 541030 2026-04-27T20:23:53Z EdytaT 2664 /* Napary z kadzidłowca indyjskiego */ 541068 wikitext text/x-wiki {{Podrozdział|[[Napary]]<br>Kadzidłowiec indyjski (olibanum)}} {{Uprawa - roślina infobox | nazwa = Kadzidłowiec indyjski | obrazek = Boswellia serrata (Salai) in Kinnarsani WS, AP W IMG 5844.jpg | łacina = Boswellia serrata | nazwy = boswellia, olibanum, shallaki | wikipedia = Kadzidłowiec indyjski | wikispecies = Boswellia serrata | wikisłownik = kadzidłowiec indyjski | commons = Category:Boswellia serrata }} == Kadzidłowiec indyjski (olibanum) == {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} * Kadzidłowiec jest drzewem, które produkuje wonną żywicę nazywaną [[w:Olibanum|olibanum]]. * Substancja czynna zawarta w żywicy kadzidłowca są [[Napary/Pomoc#K|kwasy bosweliowe]] (substancja [[Napary/Pomoc#A|AKBA]] o działaniu [[Napary/Działanie#Przeciwzapalne|przeciwzapalnym]] i [[Napary/Działanie#Przeciwbólowe|przeciwbólowym]]). * Ekstrakt z kadzidłowca działa [[Napary/Działanie#Przeciwzapalne|przeciwzapalnie]] (w stawach, kościach, mięśniach i jelitach) , [[Napary/Działanie#Przeciwbólowe|przeciwbólowo]], uspokajająco, a także [[Napary/Działanie#Przeciwnowotworowe|przeciwnowotworowo]]. * Polecany jest osobom cierpiącym na [[Napary/Działanie#Stawy|choroby zwyrodnieniowe stawów]]. * Pomaga przy astmie czy nieswoistym zapaleniu jelit. == Przeciwwskazania == * Możliwe skutki uboczne to nudności, zgaga, biegunka czy wysypka. * Może również zwiększyć przepływ krwi w macicy, tym samym nasilając krwawienie podczas miesiączki lub przyczynić się do poronienia. * Kadzidłowiec nie jest wskazany dla kobiet w ciąży i karmiących piersią, dla dzieciom oraz dla osób z chorobami nerek * Należy zwrócić uwagę na interakcje z lekami, zwłaszcza niesteroidowymi lekami przeciwzapalnymi (NLPZ), jak ibuprofen czy aspiryna. == Surowiec zielarski == [[Grafika:Boswellia Resin Close Up.jpg|thumb]] * Do naparów stosuje się żywicę ''Boswelii serrata'' w postaci surowej lub mielonej. * Jest szczególnie polecany w postaci ekstraktu. == Napary z kadzidłowca indyjskiego == === Wyciąg z kadzidłowca indyjskiego === * Użyj 1-2 gramów żywicy na 100 ml wrzątku. * Pozostaw żywicę w gorącej wodzie na 10-15 minut. * Usuń kawałki żywicy, aby uzyskać czysty napar. * Napar najlepiej pić po przestudzeniu. === Mieszanka na zmniejszenie [[Napary/Działanie#Przeciwzapalne|stanów zapalnych]] === * Kadzidłowiec, [[Napary/Ostryż długi|ostryż długi (kurkuma)]]. === Mieszanka na wsparcie [[Napary/Działanie#Stawy|stawów]] === * Kadzidłowiec, [[Napary/Ostryż długi|ostryż długi (kurkuma)]], [[Napary/Imbir lekarski|imbir]]. {{Przypisy}} <!-- Skoczylas 30.12.2025 --> t7c2q8h4631xb5vhun9f832dk3sgzkh Napary/Ostryż długi 0 61478 541028 535169 2026-04-27T18:28:13Z EdytaT 2664 /* Suplementacja */ 541028 wikitext text/x-wiki <noinclude>{{NawigacjaG | 1 = Napary | 2 = | 3 = }}</noinclude> {{Uprawa - roślina infobox | nazwa = Ostryż długi | obrazek = A closeup of Turmeric.JPG | łacina = Curcuma longa L. | nazwy = kurkuma | wikipedia = Ostryż długi | wikispecies = Curcuma longa | wikisłownik = ostryż długi | commons = Category:Curcuma longa }} == Ostryż długi == {{Uwaga|Informacje tu zawarte nie są tekstami medycznymi i nie służą leczeniu zachorowań!<br>W przypadku alergii nie należy korzystać z produktów wytwarzanych z tej rośliny.}} {{Uwaga|Zobacz też: {{lpr|Zastrzeżenia dotyczące pojęć medycznych}} w Wikipedii.}} * Jest [[Napary/Działanie#Przeciwutleniacze|przeciwutleniaczem]]. * Ma działanie [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]], co nieco łagodzi dolegliwości przy [[Napary/Działanie#Stawy|artrozie]]. * Zawiera kurkuminę wspierając tworzenie serotoniny i dopaminy. * Działanie [[Napary/Działanie#Przeciwbólowe|przeciwbólowe]] i [[Napary/Działanie#Przeciwzapalne|przeciwzapalne]] kurkumy może przynieść ulgę osobom cierpiącym na [[Napary/Działanie#Stawy|bóle stawów (artrozę)]] i mięśni. * Istnieją badania wskazujące na działanie porównywalne do działania [[Napary/Działanie#Depresja|antydepresantów]]. * Poprawia [[Napary/Działanie#Nastrój|nastrój]]. == Przeciwwskazania == * Może szkodzić wątrobie. == Surowiec zielarski == * Surowcem zielarskim jest kłącze kurkumy (''Curcumae longae rhizoma''). == Suplementacja == * Maksymalna dawka dzienna to 1,5 bis 3 g (ok. pół łyżeczki do jednej łyżeczki) proszku. * 0,5 g (niewielka szczypta) zawartej w kurkumie [[Napary/Pomoc#K|kurkuminy]] dziennie ma ogólnoustrojowy efekt przeciwzapalny. * Najlepiej przyjmować z posiłkiem zawierającym tłuszcz, co ułatwia rozpuszczanie [[Napary/Pomoc#K|kurkuminy]]. == Napary z ostryża długiego == === Herbatka z ostryża długiego === === Mieszanka === * Poleca się łączyć z [[Napary/Bakopa drobnolistna|brahmi (bakopą drobnolistną)]], [[Napary/Różeniec górski|różeńcem górskim]], [[Napary/Witania ospała|ashwagandhą (witanią ospałą)]], [[Napary/Klitoria ternateńska|klitorią ternateńską]] oraz z [[Napary/Herbata zielona|herbatą zieloną]]. {{Przypisy}} <noinclude>{{Nawigacja | 1 = Napary | 2 = | 3 = }}</noinclude> p9hwe5llusy6v3mugkar8jyibv122mh Wikibooks:Moduły/Sekcja referencyjna 4 63280 541029 539425 2026-04-27T18:28:59Z Persino 2851 541029 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|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 sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówkiem, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), i w zmiennej w jego pierwszym parametrze numerowanym, lub w jego wersji szablonowej. Ta funkcja lub jego odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jego odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki WWW z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach PDF-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony WWW (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametrami funkcji są: * {{Code|ustep}} - nazwa strony ustępu strony, co z niego robimy nazwę linku, * {{Code|czy_ustep}} - jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Oto parametry tej funkcji: * {{Code|nazwa}} - nazwa linku strony, * {{Code|od malej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę, * {{Code|od dużej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. Te parametry nie mogą się zaprzeczać między sobą, tzn. oba parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, wedłog zmiennych podanych w parametrach zdefiniowanych jako w punkcie {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znaajduje się ich opis. Nagłówek strony jest tworzony z {{Code|pelnanazwajednostki}}, {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}} Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja zwraca trzy parametry jednocześnie, czyli nazwę strony, jego nagłówek i nazwę linku. == {{Code|p.Wolumin()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, wedłog zmiennych podanych w parametrach zdefiniowanych jako w punkcie {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znaajduje się ich opis. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną nazwę strony i nazwę linku. == {{Code|p["Sekcja referencyjna"](frame)}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w samej ramce, a one są: * {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}, * {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}, * {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} - podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}, * {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} - jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jego adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}, * {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}, * {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}, * {{Code|t}}, {{Code|pod-ustęp}} - na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: pełna nazwa jednostki uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie ona jest liczona na podstawie parametrów aktualnej strony, ta niepodana, te zmienne nie muszą być użyte, a nawet nie wszystkie, na podstawie tego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko}}, z tej zmiennej jest liczona pełna nazwa książki, używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy - Tom IV}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, byle tylko adres książki się zgadzał. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według Stronicowego Parsera na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} (wtedy jest uruchamiana funkcja: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> iwrev72nof7f7bgooloyectboukcmbu 541033 541029 2026-04-27T18:40:21Z Persino 2851 /* {{Code|p.Strona_zbiorcza()}} */ 541033 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|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 sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówkiem, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), i w zmiennej w jego pierwszym parametrze numerowanym, lub w jego wersji szablonowej. Ta funkcja lub jego odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jego odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki WWW z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach PDF-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony WWW (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametrami funkcji są: * {{Code|ustep}} - nazwa strony ustępu strony, co z niego robimy nazwę linku, * {{Code|czy_ustep}} - jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Oto parametry tej funkcji: * {{Code|nazwa}} - nazwa linku strony, * {{Code|od malej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę, * {{Code|od dużej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. Te parametry nie mogą się zaprzeczać między sobą, tzn. oba parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, wedłog zmiennych podanych w parametrach zdefiniowanych jako w punkcie {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znaajduje się ich opis. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy magłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a póxniej jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właśąciwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery()|p=Sekcja referencyjna}}}} ustala odpowiednio nazwę, jak jama pisać, według zmiennych, które powinny być niesprzeczne, {{Code|od_malej}} albo {{Code|od_duzej}}, a jeżeli one nie są ustawione, wtedy nazwa linku pozosstaje niezmieniona. Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja zwraca trzy parametry jednocześnie, czyli nazwę strony, jego nagłówek i nazwę linku. == {{Code|p.Wolumin()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, wedłog zmiennych podanych w parametrach zdefiniowanych jako w punkcie {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znaajduje się ich opis. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną nazwę strony i nazwę linku. == {{Code|p["Sekcja referencyjna"](frame)}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w samej ramce, a one są: * {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}, * {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}, * {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} - podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}, * {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} - jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jego adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}, * {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}, * {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}, * {{Code|t}}, {{Code|pod-ustęp}} - na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: pełna nazwa jednostki uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie ona jest liczona na podstawie parametrów aktualnej strony, ta niepodana, te zmienne nie muszą być użyte, a nawet nie wszystkie, na podstawie tego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko}}, z tej zmiennej jest liczona pełna nazwa książki, używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy - Tom IV}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, byle tylko adres książki się zgadzał. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według Stronicowego Parsera na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} (wtedy jest uruchamiana funkcja: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 7hysp5ny6xv32wypofgg22wapvxwpla 541043 541033 2026-04-27T18:58:16Z Persino 2851 /* {{Code|p.Wolumin()}} */ 541043 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|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 sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówkiem, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), i w zmiennej w jego pierwszym parametrze numerowanym, lub w jego wersji szablonowej. Ta funkcja lub jego odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jego odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki WWW z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach PDF-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony WWW (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametrami funkcji są: * {{Code|ustep}} - nazwa strony ustępu strony, co z niego robimy nazwę linku, * {{Code|czy_ustep}} - jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Oto parametry tej funkcji: * {{Code|nazwa}} - nazwa linku strony, * {{Code|od malej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę, * {{Code|od dużej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. Te parametry nie mogą się zaprzeczać między sobą, tzn. oba parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, wedłog zmiennych podanych w parametrach zdefiniowanych jako w punkcie {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znaajduje się ich opis. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy magłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a póxniej jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właśąciwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery()|p=Sekcja referencyjna}}}} ustala odpowiednio nazwę, jak jama pisać, według zmiennych, które powinny być niesprzeczne, {{Code|od_malej}} albo {{Code|od_duzej}}, a jeżeli one nie są ustawione, wtedy nazwa linku pozosstaje niezmieniona. Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja zwraca trzy parametry jednocześnie, czyli nazwę strony, jego nagłówek i nazwę linku. == {{Code|p.Wolumin()}} == Funkcja tworzy link do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, wedłog zmiennych podanych w parametrach zdefiniowanych jako w punkcie {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znaajduje się ich opis. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną nazwę strony, policzonej z parametru {{Code|strona}},ewentualnie {{Code|podstrona}} i nazwę linku z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"](frame)}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w samej ramce, a one są: * {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}, * {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}, * {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} - podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}, * {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} - jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jego adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}, * {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}, * {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}, * {{Code|t}}, {{Code|pod-ustęp}} - na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: pełna nazwa jednostki uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie ona jest liczona na podstawie parametrów aktualnej strony, ta niepodana, te zmienne nie muszą być użyte, a nawet nie wszystkie, na podstawie tego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko}}, z tej zmiennej jest liczona pełna nazwa książki, używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy - Tom IV}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, byle tylko adres książki się zgadzał. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według Stronicowego Parsera na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} (wtedy jest uruchamiana funkcja: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6c9r0gp83pwzp3qzgita5mj4k5vhila 541044 541043 2026-04-27T18:59:35Z Persino 2851 /* {{Code|p.Strona_zbiorcza()}} */ 541044 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|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 sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówkiem, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), i w zmiennej w jego pierwszym parametrze numerowanym, lub w jego wersji szablonowej. Ta funkcja lub jego odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jego odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki WWW z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach PDF-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony WWW (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametrami funkcji są: * {{Code|ustep}} - nazwa strony ustępu strony, co z niego robimy nazwę linku, * {{Code|czy_ustep}} - jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Oto parametry tej funkcji: * {{Code|nazwa}} - nazwa linku strony, * {{Code|od malej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę, * {{Code|od dużej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. Te parametry nie mogą się zaprzeczać między sobą, tzn. oba parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza()}} == Funkcja tworzy linkna stronie zbiorczej sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, wedłog zmiennych podanych w parametrach zdefiniowanych jako w punkcie {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znaajduje się ich opis. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy magłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a póxniej jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właśąciwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery()|p=Sekcja referencyjna}}}} ustala odpowiednio nazwę, jak jama pisać, według zmiennych, które powinny być niesprzeczne, {{Code|od_malej}} albo {{Code|od_duzej}}, a jeżeli one nie są ustawione, wtedy nazwa linku pozosstaje niezmieniona. Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja zwraca trzy parametry jednocześnie, czyli nazwę strony, jego nagłówek i nazwę linku. == {{Code|p.Wolumin()}} == Funkcja tworzy link do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, wedłog zmiennych podanych w parametrach zdefiniowanych jako w punkcie {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znaajduje się ich opis. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną nazwę strony, policzonej z parametru {{Code|strona}},ewentualnie {{Code|podstrona}} i nazwę linku z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"](frame)}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w samej ramce, a one są: * {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}, * {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}, * {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} - podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}, * {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} - jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jego adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}, * {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}, * {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}, * {{Code|t}}, {{Code|pod-ustęp}} - na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: pełna nazwa jednostki uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie ona jest liczona na podstawie parametrów aktualnej strony, ta niepodana, te zmienne nie muszą być użyte, a nawet nie wszystkie, na podstawie tego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko}}, z tej zmiennej jest liczona pełna nazwa książki, używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy - Tom IV}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, byle tylko adres książki się zgadzał. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według Stronicowego Parsera na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} (wtedy jest uruchamiana funkcja: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> icbudpsaw5u0v1chi7nuchx8glovuvi 541045 541044 2026-04-27T19:03:33Z Persino 2851 541045 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|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 sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówkiem, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), i w zmiennej w jego pierwszym parametrze numerowanym, lub w jego wersji szablonowej. Ta funkcja lub jego odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jego odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki WWW z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach PDF-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony WWW (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametrami funkcji są: * {{Code|ustep}} - nazwa strony ustępu strony, co z niego robimy nazwę linku, * {{Code|czy_ustep}} - jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Oto parametry tej funkcji: * {{Code|nazwa}} - nazwa linku strony, * {{Code|od malej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę, * {{Code|od dużej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. Te parametry nie mogą się zaprzeczać między sobą, tzn. oba parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza()}} == Funkcja tworzy linkna stronie zbiorczej sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy magłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a póxniej jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właśąciwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery()|p=Sekcja referencyjna}}}} ustala odpowiednio nazwę, jak jama pisać, według zmiennych, które powinny być niesprzeczne, {{Code|od_malej}} albo {{Code|od_duzej}}, a jeżeli one nie są ustawione, wtedy nazwa linku pozosstaje niezmieniona. Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja zwraca trzy parametry jednocześnie, czyli nazwę strony, jego nagłówek i nazwę linku. == {{Code|p.Wolumin()}} == Funkcja tworzy link do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną nazwę strony, policzonej z parametru {{Code|strona}},ewentualnie {{Code|podstrona}} i nazwę linku z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"](frame)}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w samej ramce, a one są: * {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}, * {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}, * {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} - podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}, * {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} - jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jego adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}, * {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}, * {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}, * {{Code|t}}, {{Code|pod-ustęp}} - na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: pełna nazwa jednostki uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie ona jest liczona na podstawie parametrów aktualnej strony, ta niepodana, te zmienne nie muszą być użyte, a nawet nie wszystkie, na podstawie tego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko}}, z tej zmiennej jest liczona pełna nazwa książki, używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy - Tom IV}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, byle tylko adres książki się zgadzał. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według Stronicowego Parsera na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} (wtedy jest uruchamiana funkcja: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 02dgtu4b37r5waelepjd9iv30c4qe8k 541046 541045 2026-04-27T19:09:39Z Persino 2851 /* {{Code|p["Sekcja referencyjna"](frame)}} */ 541046 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|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 sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówkiem, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), i w zmiennej w jego pierwszym parametrze numerowanym, lub w jego wersji szablonowej. Ta funkcja lub jego odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jego odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki WWW z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach PDF-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony WWW (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametrami funkcji są: * {{Code|ustep}} - nazwa strony ustępu strony, co z niego robimy nazwę linku, * {{Code|czy_ustep}} - jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Oto parametry tej funkcji: * {{Code|nazwa}} - nazwa linku strony, * {{Code|od malej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę, * {{Code|od dużej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. Te parametry nie mogą się zaprzeczać między sobą, tzn. oba parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza()}} == Funkcja tworzy linkna stronie zbiorczej sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy magłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a póxniej jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właśąciwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery()|p=Sekcja referencyjna}}}} ustala odpowiednio nazwę, jak jama pisać, według zmiennych, które powinny być niesprzeczne, {{Code|od_malej}} albo {{Code|od_duzej}}, a jeżeli one nie są ustawione, wtedy nazwa linku pozosstaje niezmieniona. Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja zwraca trzy parametry jednocześnie, czyli nazwę strony, jego nagłówek i nazwę linku. == {{Code|p.Wolumin()}} == Funkcja tworzy link do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną nazwę strony, policzonej z parametru {{Code|strona}},ewentualnie {{Code|podstrona}} i nazwę linku z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"](frame)}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w samej ramce, a one są: * {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}, * {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}, * {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} - podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}, * {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} - jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jego adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}, * {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}, * {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}, * {{Code|t}}, {{Code|pod-ustęp}} - na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: pełna nazwa jednostki uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie ona jest liczona na podstawie parametrów aktualnej strony, ta niepodana, te zmienne nie muszą być użyte, a nawet nie wszystkie, na podstawie tego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko}}, z tej zmiennej jest liczona pełna nazwa książki, używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"](frame)|p=Nazwy/Tom IV}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, byle tylko adres książki się zgadzał. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według Stronicowego Parsera na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} (wtedy jest uruchamiana funkcja: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 7ek9ork5g7rcg64qy9joezp8l57sjbr 541047 541046 2026-04-27T19:10:27Z Persino 2851 /* {{Code|p["Sekcja referencyjna"](frame)}} */ 541047 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|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 sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówkiem, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), i w zmiennej w jego pierwszym parametrze numerowanym, lub w jego wersji szablonowej. Ta funkcja lub jego odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jego odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki WWW z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach PDF-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony WWW (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametrami funkcji są: * {{Code|ustep}} - nazwa strony ustępu strony, co z niego robimy nazwę linku, * {{Code|czy_ustep}} - jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Oto parametry tej funkcji: * {{Code|nazwa}} - nazwa linku strony, * {{Code|od malej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę, * {{Code|od dużej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. Te parametry nie mogą się zaprzeczać między sobą, tzn. oba parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza()}} == Funkcja tworzy linkna stronie zbiorczej sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy magłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a póxniej jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właśąciwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery()|p=Sekcja referencyjna}}}} ustala odpowiednio nazwę, jak jama pisać, według zmiennych, które powinny być niesprzeczne, {{Code|od_malej}} albo {{Code|od_duzej}}, a jeżeli one nie są ustawione, wtedy nazwa linku pozosstaje niezmieniona. Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja zwraca trzy parametry jednocześnie, czyli nazwę strony, jego nagłówek i nazwę linku. == {{Code|p.Wolumin()}} == Funkcja tworzy link do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną nazwę strony, policzonej z parametru {{Code|strona}},ewentualnie {{Code|podstrona}} i nazwę linku z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"](frame)}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w samej ramce, a one są: * {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}, * {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}, * {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} - podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}, * {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} - jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jego adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}, * {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}, * {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}, * {{Code|t}}, {{Code|pod-ustęp}} - na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: pełna nazwa jednostki uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie ona jest liczona na podstawie parametrów aktualnej strony, ta niepodana, te zmienne nie muszą być użyte, a nawet nie wszystkie, na podstawie tego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"](frame,i)|p=Pudełko}}, z tej zmiennej jest liczona pełna nazwa książki, używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy/Tom IV}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, byle tylko adres książki się zgadzał. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według Stronicowego Parsera na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} (wtedy jest uruchamiana funkcja: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> t7m6y1ivg63n98myqfgqtocy6exmpf1 541048 541047 2026-04-27T19:12:47Z Persino 2851 /* {{Code|p["Sekcja referencyjna"](frame)}} */ 541048 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|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 sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówkiem, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), i w zmiennej w jego pierwszym parametrze numerowanym, lub w jego wersji szablonowej. Ta funkcja lub jego odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jego odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki WWW z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach PDF-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony WWW (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametrami funkcji są: * {{Code|ustep}} - nazwa strony ustępu strony, co z niego robimy nazwę linku, * {{Code|czy_ustep}} - jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Oto parametry tej funkcji: * {{Code|nazwa}} - nazwa linku strony, * {{Code|od malej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę, * {{Code|od dużej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. Te parametry nie mogą się zaprzeczać między sobą, tzn. oba parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza()}} == Funkcja tworzy linkna stronie zbiorczej sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy magłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a póxniej jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właśąciwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery()|p=Sekcja referencyjna}}}} ustala odpowiednio nazwę, jak jama pisać, według zmiennych, które powinny być niesprzeczne, {{Code|od_malej}} albo {{Code|od_duzej}}, a jeżeli one nie są ustawione, wtedy nazwa linku pozosstaje niezmieniona. Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja zwraca trzy parametry jednocześnie, czyli nazwę strony, jego nagłówek i nazwę linku. == {{Code|p.Wolumin()}} == Funkcja tworzy link do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną nazwę strony, policzonej z parametru {{Code|strona}},ewentualnie {{Code|podstrona}} i nazwę linku z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"](frame)}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w samej ramce, a one są: * {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}, * {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}, * {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} - podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}, * {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} - jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jego adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}, * {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}, * {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}, * {{Code|t}}, {{Code|pod-ustęp}} - na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: pełna nazwa jednostki uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie ona jest liczona na podstawie parametrów aktualnej strony, ta niepodana, te zmienne nie muszą być użyte, a nawet nie wszystkie, na podstawie tego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}, z tej zmiennej jest liczona pełna nazwa książki, używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy/Tom IV}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, byle tylko adres książki się zgadzał. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według Stronicowego Parsera na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} (wtedy jest uruchamiana funkcja: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 64bnxq4uftelg06wul7xz4c71u1l17k 541049 541048 2026-04-27T19:15:13Z Persino 2851 /* {{Code|p.Strona_zbiorcza()}} */ 541049 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|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 sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówkiem, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), i w zmiennej w jego pierwszym parametrze numerowanym, lub w jego wersji szablonowej. Ta funkcja lub jego odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jego odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki WWW z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach PDF-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony WWW (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametrami funkcji są: * {{Code|ustep}} - nazwa strony ustępu strony, co z niego robimy nazwę linku, * {{Code|czy_ustep}} - jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Oto parametry tej funkcji: * {{Code|nazwa}} - nazwa linku strony, * {{Code|od malej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę, * {{Code|od dużej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. Te parametry nie mogą się zaprzeczać między sobą, tzn. oba parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza()}} == Funkcja tworzy linkna stronie zbiorczej sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy magłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a później jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właśąciwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery()|p=Sekcja referencyjna}}}} ustala odpowiednio nazwę, jak jama pisać, według zmiennych, które powinny być niesprzeczne, {{Code|od_malej}} albo {{Code|od_duzej}}, a jeżeli one nie są ustawione, wtedy nazwa linku pozosstaje niezmieniona. Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja zwraca trzy parametry jednocześnie, czyli nazwę strony, jego nagłówek i nazwę linku. == {{Code|p.Wolumin()}} == Funkcja tworzy link do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną nazwę strony, policzonej z parametru {{Code|strona}},ewentualnie {{Code|podstrona}} i nazwę linku z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"](frame)}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w samej ramce, a one są: * {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}, * {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}, * {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} - podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}, * {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} - jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jego adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}, * {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}, * {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}, * {{Code|t}}, {{Code|pod-ustęp}} - na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: pełna nazwa jednostki uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie ona jest liczona na podstawie parametrów aktualnej strony, ta niepodana, te zmienne nie muszą być użyte, a nawet nie wszystkie, na podstawie tego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}, z tej zmiennej jest liczona pełna nazwa książki, używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy/Tom IV}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, byle tylko adres książki się zgadzał. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według Stronicowego Parsera na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} (wtedy jest uruchamiana funkcja: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 73pe7kpntq0bnzb9a4meurb7buatx65 541050 541049 2026-04-27T19:17:24Z Persino 2851 541050 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|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 sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówkiem, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), i w zmiennej w jego pierwszym parametrze numerowanym, lub w jego wersji szablonowej. Ta funkcja lub jego odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jego odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki WWW z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach PDF-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony WWW (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametrami funkcji są: * {{Code|ustep}} - nazwa strony ustępu strony, co z niego robimy nazwę linku, * {{Code|czy_ustep}} - jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Oto parametry tej funkcji: * {{Code|nazwa}} - nazwa linku strony, * {{Code|od malej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę, * {{Code|od dużej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. Te parametry nie mogą się zaprzeczać między sobą, tzn. oba parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza()}} == Funkcja tworzy linkna stronie zbiorczej sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy magłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a później jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właśąciwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery()|p=Sekcja referencyjna}}}} ustala odpowiednio nazwę, jak jama pisać, według zmiennych, które powinny być niesprzeczne, {{Code|od_malej}} albo {{Code|od_duzej}}, a jeżeli one nie są ustawione, wtedy nazwa linku pozosstaje niezmieniona. Funkcja zwraca trzy parametry jednocześnie, czyli nazwę strony, jego nagłówek i nazwę linku. == {{Code|p.Wolumin()}} == Funkcja tworzy link do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną nazwę strony, policzonej z parametru {{Code|strona}},ewentualnie {{Code|podstrona}} i nazwę linku z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"](frame)}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w samej ramce, a one są: * {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}, * {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}, * {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} - podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}, * {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} - jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jego adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}, * {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}, * {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}, * {{Code|t}}, {{Code|pod-ustęp}} - na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: pełna nazwa jednostki uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie ona jest liczona na podstawie parametrów aktualnej strony, ta niepodana, te zmienne nie muszą być użyte, a nawet nie wszystkie, na podstawie tego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}, z tej zmiennej jest liczona pełna nazwa książki, używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy/Tom IV}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, byle tylko adres książki się zgadzał. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według Stronicowego Parsera na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} (wtedy jest uruchamiana funkcja: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> pnujff6ac5h1o4dzzr1cg8ztxsho2pk 541089 541050 2026-04-27T21:28:52Z Persino 2851 /* {{Code|p["Sekcja referencyjna"](frame)}} */ 541089 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|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 sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówkiem, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), i w zmiennej w jego pierwszym parametrze numerowanym, lub w jego wersji szablonowej. Ta funkcja lub jego odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jego odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki WWW z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach PDF-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony WWW (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametrami funkcji są: * {{Code|ustep}} - nazwa strony ustępu strony, co z niego robimy nazwę linku, * {{Code|czy_ustep}} - jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery()}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Oto parametry tej funkcji: * {{Code|nazwa}} - nazwa linku strony, * {{Code|od malej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę, * {{Code|od dużej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. Te parametry nie mogą się zaprzeczać między sobą, tzn. oba parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza()}} == Funkcja tworzy linkna stronie zbiorczej sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy magłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a później jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właśąciwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery()|p=Sekcja referencyjna}}}} ustala odpowiednio nazwę, jak jama pisać, według zmiennych, które powinny być niesprzeczne, {{Code|od_malej}} albo {{Code|od_duzej}}, a jeżeli one nie są ustawione, wtedy nazwa linku pozosstaje niezmieniona. Funkcja zwraca trzy parametry jednocześnie, czyli nazwę strony, jego nagłówek i nazwę linku. == {{Code|p.Wolumin()}} == Funkcja tworzy link do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną nazwę strony, policzonej z parametru {{Code|strona}},ewentualnie {{Code|podstrona}} i nazwę linku z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"](frame)}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w samej ramce, a one są: * {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}, * {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}, * {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} - podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}, * {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} - jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jego adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}, * {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}, * {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}, * {{Code|t}}, {{Code|pod-ustęp}} - na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: pełna nazwa jednostki uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie ona jest liczona na podstawie parametrów aktualnej strony, ta niepodana, te zmienne nie muszą być użyte, a nawet nie wszystkie, na podstawie tego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}, z tej zmiennej jest liczona pełna nazwa książki, używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy/Tom IV}} w funkcjach: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} i {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, ale tak nie musi być, byle tylko adres książki się zgadzał. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według Stronicowego Parsera na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} (wtedy jest uruchamiana funkcja: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> jn461da2zlbbcb9ce8lela6qjfsic6x 541090 541089 2026-04-27T21:35:41Z Persino 2851 541090 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|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 sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówkiem, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), i w zmiennej w jego pierwszym parametrze numerowanym, lub w jego wersji szablonowej. Ta funkcja lub jego odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jego odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki WWW z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach PDF-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony WWW (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony()}} == Funkcja zwraca nagłówek strony, jeżeli istnieje, lub jego podstronę, a jeżeli ona nie ma żadnej podstrony według tego adresu, to cały ten adres. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametrami funkcji są: * {{Code|ustep}} - nazwa strony ustępu strony, co z niego robimy nazwę linku, * {{Code|czy_ustep}} - jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery()}} == Funkcja zamienia w nazwie linku pierwszy znak,który jest literą, aby był od dużej lub małej litery, w zależności od parametrów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Oto parametry tej funkcji: * {{Code|nazwa}} - nazwa linku strony, * {{Code|od malej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę, * {{Code|od dużej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. Te parametry nie mogą się zaprzeczać między sobą, tzn. oba parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza()}} == Funkcja tworzy linkna stronie zbiorczej sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy magłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a później jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właśąciwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery()|p=Sekcja referencyjna}}}} ustala odpowiednio nazwę, jak jama pisać, według zmiennych, które powinny być niesprzeczne, {{Code|od_malej}} albo {{Code|od_duzej}}, a jeżeli one nie są ustawione, wtedy nazwa linku pozosstaje niezmieniona. Funkcja zwraca trzy parametry jednocześnie, czyli nazwę strony, jego nagłówek i nazwę linku. == {{Code|p.Wolumin()}} == Funkcja tworzy link do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną nazwę strony, policzonej z parametru {{Code|strona}},ewentualnie {{Code|podstrona}} i nazwę linku z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"](frame)}} == Definicja skrótowa funkcji jest w postaci: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w samej ramce, a one są: * {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}, * {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}, * {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} - podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}, * {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} - jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jego adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}, * {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}, * {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}, * {{Code|t}}, {{Code|pod-ustęp}} - na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: pełna nazwa jednostki uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie ona jest liczona na podstawie parametrów aktualnej strony, ta niepodana, te zmienne nie muszą być użyte, a nawet nie wszystkie, na podstawie tego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}, z tej zmiennej jest liczona pełna nazwa książki, używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy/Tom IV}} w funkcjach: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} i {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, ale tak nie musi być, byle tylko adres książki się zgadzał. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według Stronicowego Parsera na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} (wtedy jest uruchamiana funkcja: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> mvvgw2n0knwcueewcvspv9rf9jyupn9 541091 541090 2026-04-27T21:40:00Z Persino 2851 541091 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|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 sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówkiem, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), i w zmiennej w jego pierwszym parametrze numerowanym, lub w jego wersji szablonowej. Ta funkcja lub jego odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jego odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki WWW z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach PDF-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony WWW (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony()}} == Funkcja zwraca nagłówek strony, jeżeli istnieje, lub jego podstronę, a jeżeli ona nie ma żadnej podstrony według tego adresu, to cały ten adres. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametrami funkcji są: * {{Code|ustep}} - nazwa strony ustępu strony, co z niego robimy nazwę linku, * {{Code|czy_ustep}} - jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery()}} == Funkcja zamienia w nazwie linku pierwszy znak,który jest literą, aby był od dużej lub małej litery, w zależności od parametrów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Oto parametry tej funkcji: * {{Code|nazwa}} - nazwa linku strony, * {{Code|od malej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę, * {{Code|od dużej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. Te parametry nie mogą się zaprzeczać między sobą, tzn. oba parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza()}} == Funkcja tworzy linkna stronie zbiorczej sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy magłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a później jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właśąciwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery()|p=Sekcja referencyjna}}}} ustala odpowiednio nazwę, jak jama pisać, według zmiennych, które powinny być niesprzeczne, {{Code|od_malej}} albo {{Code|od_duzej}}, a jeżeli one nie są ustawione, wtedy nazwa linku pozosstaje niezmieniona. Funkcja zwraca trzy parametry jednocześnie, czyli nazwę strony, jego nagłówek i nazwę linku. == {{Code|p.Wolumin()}} == Funkcja tworzy link do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną nazwę strony, policzonej z parametru {{Code|strona}},ewentualnie {{Code|podstrona}} i nazwę linku z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"](frame)}} == SDzablon linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się mieści pod wywołaniem szablonu {{s|Tabela nawigacyjna}}, linkujący się do stron tego samego podręcznika, w której został wywołany, ewentualnie do jego identyfikatora danego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w samej ramce, a one są: * {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}, * {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}, * {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} - podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}, * {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} - jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jego adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}, * {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}, * {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}, * {{Code|t}}, {{Code|pod-ustęp}} - na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: pełna nazwa jednostki uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie ona jest liczona na podstawie parametrów aktualnej strony, ta niepodana, te zmienne nie muszą być użyte, a nawet nie wszystkie, na podstawie tego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}, z tej zmiennej jest liczona pełna nazwa książki, używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy/Tom IV}} w funkcjach: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} i {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, ale tak nie musi być, byle tylko adres książki się zgadzał. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według Stronicowego Parsera na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} (wtedy jest uruchamiana funkcja: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> cfg8vklze1vyj3kku5yvmp47yzb2kt0 541092 541091 2026-04-27T21:41:16Z Persino 2851 /* {{Code|p["Sekcja referencyjna"](frame)}} */ 541092 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Sekcja referencyjna}}|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 sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. Ta funkcja o nazwie: {{Code|{{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}}}, jak i szablon: {{Code|{{s|Sekcja referencyjna}}}} (lub jego wersja skrótowa: {{Code|{{s|sr}}}} - w postaci przekierowania do jego dłuższej wersji), służy do wyświetlania na normalnej lub stronie zbiorczej linków inteligentnych danego podręcznika, jeżeli podamy jego artykuł wraz z, lub bez, nagłówkiem, lub nagłówek z hashem, z artykułem w zmiennej w: {{Code|podstrona}} (lub ten parametr podany w wersji skrótowej {{Code|p}}), też można linkować do strony głównej podręcznika, nie podając żadnego artykułu w funkcji w: {{sr|#p["Sekcja referencyjna"]()|p=Sekcja referencyjna}}, w zmiennej: {{Code|strona}} (lub w wersji jego skrótowej {{Code|s}}), i w zmiennej w jego pierwszym parametrze numerowanym, lub w jego wersji szablonowej. Ta funkcja lub jego odpowiednik szablonowy wyświetla na stronie normalnej artykułu link do artykułu, a na stronie zbiorczej link do identyfikatora jakiegoś obiektu na stronie. Inne funkcje użyte w module: {{Code|{{ld2|Sekcja referencyjna}}}}, są funkcjami pomocniczymi do głównej jego funkcji, która służy do wywołania w ramce w jego odpowiedniku szablonowym, podany tutaj na samym początku tej strony, te funkcje służą też do użycia w innych modułach, np.: {{ld2|StronicowyParser/Potrzebne}}. Funkcje tutaj opisują obsługę linków inteligentnych (tzw. linki inteligentne), który koloruje linki w zależności do jakiej kategorii szablon zaliczy stronę wskazaną w nim. Zestaw możliwych kodów linkowych, znajduje się na stronie {{s|Link wewnętrzny}}, w miejscu pod tabelą nawigacyjną {{s|Tabela nawigacyjna}}, według jego wikikodu opisu. === Dlaczego te funkcje w opisywanym module, jak i szablon, o który jest zdefiniowany === Moduł {{ld2|Sekcja referencyjna}}, i też szablon {{s|Sekcja referencyjna}} (używany w postaci przekierowania do niego {{s|sr}}), który wykorzystuje ten moduł do swojej definicji, zostały stworzone do używania w spisach treści, oraz wewnątrz zwyczajnych stron książki jako odnośnik do sekcji (rozdziału/podrozdziału/itp.). Ideą tego modułu (szablonu) było rozwiązanie pewnego problemu pojawiającego się, gdy strona zostanie wydrukowana w formie PDF-a. Normalnie, gdy spis treści zawiera linki do rozdziałów tworzonych normalnym sposobem (przez wikilinki), to w wydrukowanej formie te linki zostają odnośnikami bezwzględnymi do strony Wikibooks. Gdy użytkownik kliknie w taki link w PDF-ie, to zostanie przekierowany do przeglądarki WWW z otwartą stroną Wikibooks. Psuje to użytkowanie takiej strony, gdyż użytkownik zazwyczaj zakłada, że gdy kliknie na odnośnik w spisie treści, to ten przeniesie go na odpowiednią stronę ''wewnątrz'' PDF-a. Ten moduł (szablon) rozwiązuje ten problem, przez warunkową zamianę linków do stron sekcji w linki lokalne do sekcji wewnątrz strony do druku. W niektórych generatorach PDF-a taka zamiana skutkuje tym, że takie linki umieszczone w spisach treści, powodują przeniesienie do odpowiedniej strony, a nie przeskok do strony WWW (pozostałe generatory po prostu nie generują linków w ogóle). == {{Code|p.Indentyfikator_lub_podstrona_wikiadresu_strony()}} == Funkcja zwraca nagłówek strony, jeżeli istnieje, lub jego podstronę, a jeżeli ona nie ma żadnej podstrony według tego adresu, to cały ten adres. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end; </syntaxhighlight> Parametrami funkcji są: * {{Code|ustep}} - nazwa strony ustępu strony, co z niego robimy nazwę linku, * {{Code|czy_ustep}} - jeżeli {{Code|true}} liczy wtedy nagłówek, a jeżeli tego nie ma to podstronę. Jeżeli {{Code|ustep{{=}}nil}}, w takim razie jest zwracana wartość parametru tego, czyli {{Code|nil}}. Aby nie uzyskać identyfikatora strony, to drugi parametr, czyli {{Code|czy_ustep}}, nie może przyjmować wartości logicznej {{Code|true}}, tylko jako {{Code|false}} lub {{Code|nil}} - wtedy zwracana jest wartość argumentu {{Code|ustęp}}. A jeżeli podamy wartość {{Code|true}}, gdy zmienna {{Code|ustep}} zawiera nagłówek, to zwracany jest właśnie on bez znaku {{Code|#}}, a jeżeli nie zawiera on tego, tylko podstronę, wtedy zwracana jest jego podstrona. W przeciwny wypadku zwracana jest sama wartość argumentu {{Code|ustep}}. == {{Code|p.Nazwa_od_niewielkiej_lub_wielkiej_litery()}} == Funkcja zamienia w nazwie linku pierwszy znak,który jest literą, aby był od dużej lub małej litery, w zależności od parametrów. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Nazwa_od_niewielkiej_lub_wielkiej_litery(nazwa,od_malej,od_duzej)...end; </syntaxhighlight> Oto parametry tej funkcji: * {{Code|nazwa}} - nazwa linku strony, * {{Code|od malej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na małą literę, * {{Code|od dużej}} - zamienia pierwszą literę, pierwszy znak, nazwy linku na dużą literę. Te parametry nie mogą się zaprzeczać między sobą, tzn. oba parametry nie mogą być nie {{Code|true}}. W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony. == {{Code|p.Strona_zbiorcza()}} == Funkcja tworzy linkna stronie zbiorczej sama do siebie do elementu wskazywanego przez stworzony nagłówek z parametrów tej funkcji. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Strona_zbiorcza(strona,podstrona,nazwa,czy_ustep,czy_pod_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Nagłówek strony jest tworzony z: {{Code|strona}} i {{Code|podstrona}}, także na podstawie parametru {{Code|czy_pod_ustep}}, gdy magłówek jest pusty, on jesty wyznaczany z: {{Code|pelnanazwajednostki}}, a później jest do tego wykorzystywana zmienna: {{Code|czy_pod_ustep}}, do liczenia właśąciwego nagłówka. Parametr nazwy linku jest w zmiennej {{Code|nazwa}}, a jezeli ona nie istnieje, wtedy wykorzystujemy do tego element {{Code|strona}}, do którego wykorzystywana jest {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery()|p=Sekcja referencyjna}}}} ustala odpowiednio nazwę, jak jama pisać, według zmiennych, które powinny być niesprzeczne, {{Code|od_malej}} albo {{Code|od_duzej}}, a jeżeli one nie są ustawione, wtedy nazwa linku pozosstaje niezmieniona. Funkcja zwraca trzy parametry jednocześnie, czyli nazwę strony, jego nagłówek i nazwę linku. == {{Code|p.Wolumin()}} == Funkcja tworzy link do podnego artykułu podręcznika, ewentualnie z nazwą nagłówka. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.Wolumin(strona,podstrona,nazwa,czy_ustep,od_malej,od_duzej,pelnanazwajednostki)...end; </syntaxhighlight> Wartości opcjonalne powyżej przyjmują wartość {{Code|nil}}, wtedy możemy je uznać tak, jak by je, nie podaliśmy. Funkcja przyjmuje parametry podane w tym rozdziale w parametrach tej funkcji, w jego definicji skrótowej, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"](frame)|p=Sekcja referencyjna}}}}, przy których znajduje się ich opis, podanych przy jego parametrach. Jeżeli parametr {{Code|strona}} nie istnieje, to ona jest tworzona na podstawie {{Code|pelnanazwajednostki}}, nie używajac parametru {{Code|podstrona}}. A jeżeli on istnieje, to nowa wartość {{Code|strona}} jest tworzona ze starego {{Code|strona}} i {{Code|podstrona}}. Funkcja zwraca dwa parametry jednocześnie, czyli policzoną nazwę strony, policzonej z parametru {{Code|strona}},ewentualnie {{Code|podstrona}} i nazwę linku z {{Code|nazwa}}, a jeżeli ona nie istnieje to ona jest tworzona z: {{Code|strona}}, wykorzystując funkcję {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony()|p=Sekcja referencyjna}}}}. == {{Code|p["Sekcja referencyjna"](frame)}} == SDzablon linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się mieści w tabeli wywołania szablonowego {{s|Tabela nawigacyjna}}, linkujący się do stron tego samego podręcznika, w której został wywołany, ewentualnie do jego identyfikatora danego elementu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Sekcja referencyjna"]=function(frame)...end; </syntaxhighlight> Parametrami tablicy ramki modułu, które są podane w rodzicu w szablonie lub w samej ramce, jeżeli jest podany parametr {{Parametr|wyspecjalizowana|tak}} w samej ramce, a one są: * {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem, zdefiniujmy go jako: {{Code|strona}}, * {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule, zdefiniujmy go jako: {{Code|nazwa}}, * {{Code|3}}, {{Code|p}} lub {{Code|podstrona}} - podstrona dodawana do linku podczas rozważać, wtedy artykuł, będzie o jeden lub wyżej, głębiej w drzewie danej przestrzeni nazw, zdefiniujmy go jako: {{Code|podstrona}}, * {{Code|4}}. {{Code|u}} lub {{Code|ustęp}} - jeśli przyjmuje wartość niepustą, to nazwa wyświetlana linku jest jego nagłówek, jeżeli istnieje, lub jego podstrona albo sama strona, w przypadku przestrzeni nazw {{Np|(main)|link=tak}} i {{Np|Wikijunior|link=tak}} oraz nibyprzestrzeni nazw {{lr2|Brudnopis}}, w przestrzeni nazw {{Np|Project|link=tak}}, a także przestrzeni użytkownika {{Np|User|link=tak}}, a w przypadku nie podania nazwy strony {{Code|strona}} (lub jego skrót: {{Code|s}}) lub {{Code|1}}, to parametr {{Code|ustęp}} zachowuje się odwrotnie, wtedy nazwę strony, do której linkuje szablon, przyjmujemy domyślnie, że jest to nazwa książki, w przestrzeniach nazw w dwóch pierwszych nie widać różnicy działania tego parametru, już jest różnica w nibyprzestrzeniach nazw dwóch ostatnich, tutaj ten szablon podaje subnazwę książki, a nie jego adres, gdzie przy {{Parametr|ustęp|tak}} (lub jego synonim numerowany: {{Parametr|4|tak}}) (lub jego skrót: {{Parametr|u|tak}}) podaje cały adres, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|czy_ustęp}}, * {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od malej}}, * {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery, zdefiujmy go jako, czy jest o wartości niepustej: {{Code|od dużej}}, * {{Code|t}}, {{Code|pod-ustęp}} - na stronach zbiorczych skraca nazwę nagłówka, która na stronie artykułów podręcznika byłaby nazwą strony, do substrony, zdefiujmy go jako: {{Code|czy_pod_ustep}}. ---- W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: pełna nazwa jednostki uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa jednostki}}, a jeżeli jakaś z tych zmiennych nie została podana, to traktowana jest, jakby była podana, w takim razie ona jest liczona na podstawie parametrów aktualnej strony, ta niepodana, te zmienne nie muszą być użyte, a nawet nie wszystkie, na podstawie tego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}, z tej zmiennej jest liczona pełna nazwa książki, używając funkcji: {{sr|#m["PEŁNANAZWAKSIĄŻKI"]()|p=Nazwy/Tom IV}} w funkcjach: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} i {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, parametry pudełek mogą wskazywać na inny artykuł niż aktualny, ale tak nie musi być, byle tylko adres książki się zgadzał. ---- Te parametry powyżej są jednocześnie parametrami szablonu {{s|Sekcja referencyjna}} (lub jego wersji skrótowej {{s|sr}}). Te parametry możemy podać też w formie funkcyjnej: <syntaxhighlight lang="lua"> local sekcja_referencyjna_modul=require("Module:Sekcja referencyjna"); local link=sekcja_referencyjna_modul["Sekcja referencyjna"]{args={strona=..., nazwa=.., podstrona=..., ...}}; </syntaxhighlight> W ramce funkcyjnej parametry ze znakami nienależącymi do alfabetu łacińskiego piszmy w cudzysłowach w nawiasach kwadratowych, czyli w formie: {{Code|["pod-ustęp"]{{=}}...}}, czy parametry numerowe w nawiasach bez cudzysłowu: {{Code|[1]{{=}}...}}, a parametry normalne piszemy: {{Code|strona{{=}}...}}. Funkcja w uruchamianiu ma dwa warianty, na normalnej stronie niezbiorczej uruchamiana jest funkcja {{Code|{{sr|#p.Wolumin()|p=Sekcja referencyjna}}}}, a na jakikolwiek stronie zbiorczej według Stronicowego Parsera na podstawie modułu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli strony zefiniowanej w: {{Code|{{m|StronicowyParser/StronaSubst}}}}, jest uruchamiana funkcja: {{Code|{{sr|#p.Strona_zbiorcza()|p=Sekcja referencyjna}}}} (wtedy jest uruchamiana funkcja: {{Code|{{m|StronicowyParser|CzyStronaSubst}}}}, która zwraca wynik {{Code|tak}}, gdy strona dana jest bieżąca lub podana na podstawie parametrów pudełkowych: {{Code|{{m|Pudełko}}}}, która jest stroną zbiorczą, w przeciwnym wypadku mamy wynik: {{Code|nil}}, gdy nie). {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 12axlyetmfzk8qdcy16qfstc6ngnnez Wikibooks:Moduły/Html 4 63462 541096 540281 2026-04-28T03:01:38Z Persino 2851 541096 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{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 z podanego zestawu znaków do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}} dziessietnych i szesnanstkowych na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki--~~~~>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków, wystęouuących w tagach języka '''HTML''' do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z znaku dwukropka do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry: * {{Code|znacznik}} - atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Fubkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, i {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Jeżeli znalazł, że kody w nim występują poprzez drugą wartość ostatniej funkcji, to wywoływana jest {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}} do odkodywania kodów {{Strong|HTML}} dziesiętnych, szestnatskowych i dziesiętnych. Na samym końcu kodowane są specjalne znaki {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 16dkk7cg3hzaifn5ttkkiwfq3s67223 541097 541096 2026-04-28T03:02:31Z Persino 2851 /* {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} */ 541097 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{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 z podanego zestawu znaków do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}} dziessietnych i szesnanstkowych na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki--~~~~>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody {{Strong|HTML}}, tam gdzie one mają specjalne znaczenie, a po wyeliminowaniu ich (po zamianie) tracą owe znaczenie. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaDwukropkaNaKodHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z znaku dwukropka do kodu {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry: * {{Code|znacznik}} - atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Fubkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, i {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Jeżeli znalazł, że kody w nim występują poprzez drugą wartość ostatniej funkcji, to wywoływana jest {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}} do odkodywania kodów {{Strong|HTML}} dziesiętnych, szestnatskowych i dziesiętnych. Na samym końcu kodowane są specjalne znaki {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> pze0gn2s7ksxusyprla3kgiqzaqjg0w 541098 541097 2026-04-28T03:04:46Z Persino 2851 541098 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{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 z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}} dziessietnych i szesnanstkowych na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki--~~~~>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry: * {{Code|znacznik}} - atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Fubkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, i {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Jeżeli znalazł, że kody w nim występują poprzez drugą wartość ostatniej funkcji, to wywoływana jest {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}} do odkodywania kodów {{Strong|HTML}} dziesiętnych, szestnatskowych i dziesiętnych. Na samym końcu kodowane są specjalne znaki {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 7v3yyzb8meeec1f8jy3y5v51g9emffz 541099 541098 2026-04-28T03:05:36Z Persino 2851 /* {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} */ 541099 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{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 z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}} dziesiętnych i szesnanstkowych na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody {{Strong|HTML}}. Zamieniane znaki to są podane w nawiasach kwadratowych w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a przed tym znakiem jest zwykle {{Code|<nowiki>%</nowiki--~~~~>}}, jeżeli to nie jest znak specjalny wyrażeń regularnych w nim, a te znaki zamieniane to są: {{Code|<nowiki>!{}|=<>[]</nowiki>}}. Dlatego te znaki, bo {{Code|<nowiki>=<>[]</nowiki>}} są częścią tagów mechanizmu {{Strong|HTML}}, a w tagach mogą być też linki wewnętrzne, czy zewnętrzne, i nierozwinięte szablony, a więc też i {{Code|<nowiki>{}|</nowiki>}}, a elementy {{Code|<nowiki>!{}|=</nowiki>}} są one częścią wiki-tabelek mechanizmu {{Code|MediaWiki}}, elementy te też mogą występować, gdzieś indziej w tekście w wikikodzie, również ze znakiem {{Code|<nowiki>=</nowiki>}} i z innymi tutaj wspomnianymi znakami tagowymi, też trzeba je zakodować nimi. Tak je kodujemy przez tę funkcję, by tak uzyskany tekst nie miał elementów mechanizmu {{Strong|HTML}}, ani {{Strong|MediaWiki}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneTaguNowiki(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody {{Strong|HTML}}, a także znaki lewego ukośnika {{Code|<nowiki>\</nowiki>}} też na to. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)...end; </syntaxhighlight> Parametry: * {{Code|znacznik}} - atrybut do przetwarzania, aby w nim zamienić niektóre znaki, które przeszkadzają w analizie na kody {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Fubkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, i {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Jeżeli znalazł, że kody w nim występują poprzez drugą wartość ostatniej funkcji, to wywoływana jest {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}} do odkodywania kodów {{Strong|HTML}} dziesiętnych, szestnatskowych i dziesiętnych. Na samym końcu kodowane są specjalne znaki {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> atetre7g2et4jl4r2ix0nte0ze1ppr5 541100 541099 2026-04-28T03:10:54Z Persino 2851 541100 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}} dziesiętnych i szesnanstkowych na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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 dziesiętne {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Fubkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, i {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Jeżeli znalazł, że kody w nim występują poprzez drugą wartość ostatniej funkcji, to wywoływana jest {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}} do odkodywania kodów {{Strong|HTML}} dziesiętnych, szestnatskowych i dziesiętnych. Na samym końcu kodowane są specjalne znaki {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> m8kyf27om8beloa4gadxde3ribaq1wu 541101 541100 2026-04-28T03:12:24Z Persino 2851 /* Funkcja biblioteczna */ 541101 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}} dziesiętnych i szesnanstkowych na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod dziesiętny {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki na kod {{Strong|HTML}}, ciąg ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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 dziesiętne {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Fubkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, i {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Jeżeli znalazł, że kody w nim występują poprzez drugą wartość ostatniej funkcji, to wywoływana jest {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}} do odkodywania kodów {{Strong|HTML}} dziesiętnych, szestnatskowych i dziesiętnych. Na samym końcu kodowane są specjalne znaki {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6t9f0eoiwycz7pz5azv3jfdhgruo0xi 541102 541101 2026-04-28T03:15:23Z Persino 2851 541102 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}} dziesiętnych i szesnanstkowych na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod dziesiętny {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod dziesiętny {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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 dziesiętne {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Fubkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, i {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Jeżeli znalazł, że kody w nim występują poprzez drugą wartość ostatniej funkcji, to wywoływana jest {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}} do odkodywania kodów {{Strong|HTML}} dziesiętnych, szestnatskowych i dziesiętnych. Na samym końcu kodowane są specjalne znaki {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qmnf6p9thg0q1mpyx9kt2py9sxqq2v4 541103 541102 2026-04-28T03:16:37Z Persino 2851 541103 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, dziesiętnymi, szestnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}} dziesiętnych i szesnanstkowych na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod dziesiętny {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod dziesiętny {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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 dziesiętne {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Fubkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, i {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Jeżeli znalazł, że kody w nim występują poprzez drugą wartość ostatniej funkcji, to wywoływana jest {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}} do odkodywania kodów {{Strong|HTML}} dziesiętnych, szestnatskowych i dziesiętnych. Na samym końcu kodowane są specjalne znaki {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ghpcxbhcyyhmbqexdus5zzrgrpxruvl 541104 541103 2026-04-28T03:18:52Z Persino 2851 /* {{Code|p.DecodeWiki(...)}} */ 541104 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, dziesiętnymi, szestnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}} dziesiętnych i szesnanstkowych na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod dziesiętny {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod dziesiętny {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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 dziesiętne {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Fubkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, i {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Jeżeli znalazł, że kody w nim występują poprzez drugą wartość ostatniej funkcji, to wywoływana jest {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}} do odkodywania kodów {{Strong|HTML}} dziesiętnych, szestnatskowych i dziesiętnych. Na samym końcu kodowane są specjalne znaki {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> bhywcogyq8kd1b86meq3zjwo58guju6 541105 541104 2026-04-28T03:21:41Z Persino 2851 /* {{Code|p.DecodeKoduHTMLZnaku(tekst)}} */ 541105 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, dziesiętnymi, szestnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}} dziesiętnych i szesnanstkowych na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu dziesiętnego {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu dziesiętnego {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod dziesiętny {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod dziesiętny {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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 dziesiętne {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Fubkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, i {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Jeżeli znalazł, że kody w nim występują poprzez drugą wartość ostatniej funkcji, to wywoływana jest {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}} do odkodywania kodów {{Strong|HTML}} dziesiętnych, szestnatskowych i dziesiętnych. Na samym końcu kodowane są specjalne znaki {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> dbjjxzpakv7gam2k1e45tdsso34e9m8 541106 541105 2026-04-28T03:37:37Z Persino 2851 541106 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, dziesiętnymi, szestnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, z odpowiedniego podanego w opisie formatu, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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 dziesiętne {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Fubkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, i {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Jeżeli znalazł, że kody w nim występują poprzez drugą wartość ostatniej funkcji, to wywoływana jest {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}} do odkodywania kodów {{Strong|HTML}} dziesiętnych, szestnatskowych i dziesiętnych. Na samym końcu kodowane są specjalne znaki {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> okcvqjewr69j1vy0zv0yvwdvxfmk4y6 541107 541106 2026-04-28T03:41:42Z Persino 2851 /* {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} */ 541107 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, dziesiętnymi, szestnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, z odpowiedniego podanego w opisie formatu, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Fubkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, i {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Jeżeli znalazł, że kody w nim występują poprzez drugą wartość ostatniej funkcji, to wywoływana jest {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}} do odkodywania kodów {{Strong|HTML}} dziesiętnych, szestnatskowych i dziesiętnych. Na samym końcu kodowane są specjalne znaki {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> rzqxqenbs1a0mp6mfb0v7dw2v9oggvh 541108 541107 2026-04-28T03:49:02Z Persino 2851 /* {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} */ 541108 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, dziesiętnymi, szestnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, z odpowiedniego podanego w opisie formatu, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, i {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Jeżeli znalazł, że kody w nim występują poprzez drugą wartość ostatniej funkcji, to wywoływana jest {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}} do odkodywania kodów {{Strong|HTML}} dziesiętnych, szestnatskowych i dziesiętnych. Na samym końcu kodowane są specjalne znaki {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> bcwrdkx8ekrxuaao7gllemu3wihchxa 541109 541108 2026-04-28T03:50:46Z Persino 2851 /* {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} */ 541109 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, dziesiętnymi, szestnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, z odpowiedniego podanego w opisie formatu, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Jeżeli znalazł, że kody w nim występują poprzez drugą wartość ostatniej funkcji, to wywoływana jest {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}} do odkodywania kodów {{Strong|HTML}} dziesiętnych, szestnatskowych i dziesiętnych. Na samym końcu kodowane są specjalne znaki {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> cbn3olm14j8e51upjqkdz4sha4emmnp 541110 541109 2026-04-28T04:02:52Z Persino 2851 /* {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} */ 541110 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, dziesiętnymi, szestnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, z odpowiedniego podanego w opisie formatu, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szestnastkowych i literowych. Na samym końcu kodowane są specjalne znaki {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}} na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> tsiu6l6cdxsugko82a8r408jps50e1g 541111 541110 2026-04-28T04:04:13Z Persino 2851 /* {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} */ 541111 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, dziesiętnymi, szestnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, z odpowiedniego podanego w opisie formatu, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej. * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szestnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6qa5x4xc2fp3rsd1ywmgabpoyclv7i6 541112 541111 2026-04-28T04:06:55Z Persino 2851 /* {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} */ 541112 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, dziesiętnymi, szestnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, z odpowiedniego podanego w opisie formatu, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szestnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szestnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szestnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> didetftc6gi5b5dnuktiek83jdfmtpa 541113 541112 2026-04-28T04:15:15Z Persino 2851 541113 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, z odpowiedniego podanego w opisie formatu, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek,ile)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, * {{Code|ile}} - jeśli większe od zero lub {{Code|nil}}, czy {{Code|false}}, funkcja dekoduje kody {{Strong|HTML}} {{Code|{{Nowiki|&amp;&num;}}}} do {{Code|{{Nowiki|&#35;}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&amp;num;&amp;num;&amp;num;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek,ile); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> j6p5mswf73cq909ezbygs6g0dbmputg 541114 541113 2026-04-28T04:21:53Z Persino 2851 /* {{Code|p.TworzenieAdresuHtml(strona,...)}} */ 541114 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, z odpowiedniego podanego w opisie formatu, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy stronę, parametryi nagłówek strony w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 0arkbunaxvp4w8bmabmyg4rag6n30hk 541115 541114 2026-04-28T04:22:56Z Persino 2851 /* {{Code|p.TworzenieAdresuHtml(strona,...)}} */ 541115 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, z odpowiedniego podanego w opisie formatu, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, według pierwszej funkcji w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy), zewnętrznych linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, z parametrami i nagłówkiem strony po podziale naje trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qjg5imobz3bhloynuipptnlbit9yw33 541116 541115 2026-04-28T04:29:07Z Persino 2851 /* {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} */ 541116 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, z odpowiedniego podanego w opisie formatu, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 3zltu0iosbrr9ugo8ipc3oq4lx7rxtp 541117 541116 2026-04-28T04:31:59Z Persino 2851 /* {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} */ 541117 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qfzb2ro040mcjdoyhbad6bgf1ca91do 541118 541117 2026-04-28T04:35:19Z Persino 2851 /* {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} */ 541118 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> pcrge87hvfqyn40vrpbw7rsqa42zfms 541119 541118 2026-04-28T04:37:22Z Persino 2851 /* {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} */ 541119 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> acy00olpq9jfe3lzb1n6195cg37uza3 541120 541119 2026-04-28T04:42:10Z Persino 2851 /* {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} */ 541120 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} nalezy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> seppllwj71mqgr0r6f8na8n6cahyu4i 541121 541120 2026-04-28T04:50:08Z Persino 2851 541121 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znaki {{Code|<nowiki>&</nowiki>}} i {{Code|<nowiki>#</nowiki>}} są kolejno zamieniane na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|&num;}}}} funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją). Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> e85drteou9v79ir6d1t66rhxx3zqjrs 541122 541121 2026-04-28T04:56:50Z Persino 2851 /* {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} */ 541122 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 6p1zuk13dbcld5tpl2f6z05p4mvjk8s 541123 541122 2026-04-28T05:00:41Z Persino 2851 /* {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} */ 541123 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> d43f6tppm3cb73kvvie4xwt5smt90xl 541124 541123 2026-04-28T05:05:04Z Persino 2851 /* {{Code|p.TworzenieAdresuHtml(strona,...)}} */ 541124 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, adresy bezprotokolarne (lub protokolarne, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) zewnętrzne linków zewnętrznych lub adresy wewnętrzne linków wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> tb203brrp570l0bbpn6hvl84fo7mpu4 541125 541124 2026-04-28T05:11:57Z Persino 2851 541125 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarne (lub protokolarne, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> rcwxrhdnd6l3ubvsfvuidv8xompu26m 541126 541125 2026-04-28T05:15:41Z Persino 2851 /* {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} */ 541126 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> kxvxclyhcqn1p8wdynoe5oapjhp9jl8 541127 541126 2026-04-28T05:24:41Z Persino 2851 /* {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} */ 541127 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli ddruga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład nazwy strony i protokołu. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> frfnbwdoaom92x7l4g9gqfsa1q199ky 541128 541127 2026-04-28T05:37:35Z Persino 2851 /* {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} */ 541128 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tej nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład na nazwę strony i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 0l258p13kxurnxex1owqrydb0car4ze 541129 541128 2026-04-28T05:39:05Z Persino 2851 541129 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład na nazwę strony i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 9ia6danitfvj88i4kith62k8yamvgp3 541130 541129 2026-04-28T05:40:36Z Persino 2851 /* {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} */ 541130 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> obzd9lwzt7tuy25a8ilbsfy8rvxw0mm 541131 541130 2026-04-28T05:43:33Z Persino 2851 /* {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} */ 541131 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id="Znaki&lt;&gt;&#92;&#34;">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> jug03xetg3rwfp0pqujaw6i630fm02c 541132 541131 2026-04-28T05:46:06Z Persino 2851 /* {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} */ 541132 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id=\"Znaki&lt;&gt;&#92;&#34;\">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}, po rozłożeniu na trzy części pelnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, do możemy wywołać dla każdej z nich funkcję w nagłówku, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ebk3hwc7n7w4bnp6wjvstmll3fjh38y 541133 541132 2026-04-28T05:50:08Z Persino 2851 /* {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} */ 541133 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub początku określanym przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{Strong|MediaWiki}} generuje bezpośrednio przed nim znak nowej linii, który jest na początku łańcucha wygenerowany przez to), a więc ta funkcja służy też do tego. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZnakProloguList(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id=\"Znaki&lt;&gt;&#92;&#34;\">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> mt8z103tjy97ypceyu0ynr4wj46egb9 541134 541133 2026-04-28T05:53:37Z Persino 2851 /* {{Code|p.EncodeZnakProloguList(frame)}} */ 541134 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{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 z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu i zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id=\"Znaki&lt;&gt;&#92;&#34;\">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> jreytuhf97gldqz7edslpdli77r5ocr 541135 541134 2026-04-28T05:57:00Z Persino 2851 /* {{Code|p.DecodeWiki(...)}} */ 541135 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{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 z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, która usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu oraz zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jedną dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](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 odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id=\"Znaki&lt;&gt;&#92;&#34;\">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> pqvfndztrvrlbhurclhjdf68ccm5ea3 541136 541135 2026-04-28T06:05:33Z Persino 2851 /* {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} */ 541136 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w zawartości pomiędzy tagami tagu {{Tag|nowiki}} (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}}), wikikodu na kody dziesiętne {{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 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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{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 z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, która usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu oraz zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jedną dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](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 odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id=\"Znaki&lt;&gt;&#92;&#34;\">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qc8phb8p2a406xpcr414ian17xd9ey1 541137 541136 2026-04-28T06:11:38Z Persino 2851 /* {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} */ 541137 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w tekście, 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 dziesiętne {{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 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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{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 z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, która usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu oraz zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jedną dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](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 odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id=\"Znaki&lt;&gt;&#92;&#34;\">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 9dtrtdqrp11lu73ymchbhi23tmv8ww8 541138 541137 2026-04-28T06:16:27Z Persino 2851 /* {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} */ 541138 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w tekście (w zawartości pomiędzy tagami tagu {{Tag|nowiki}}, by potem je tam umieścić, by pierwotna zawartość równała się tekstowi wysietlanemu (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}})), wikikodu na kody dziesiętne {{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 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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{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 z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, która usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu oraz zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jedną dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](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 odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id=\"Znaki&lt;&gt;&#92;&#34;\">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 1b2ay3jinrkhnknbcr29e2ydw63sqj5 541139 541138 2026-04-28T06:21:42Z Persino 2851 541139 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, dziesiętnymi, szesnastkowymi i literowymi, {{Strong|HTML}}, zamieniania znaków na ich kody dziesiętne, 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.KodowanieOmijanieFunkcyjne(html,...)}} == Funkcja wywołuje funkcję modułu {{Code|{{ld2|Szeregi}}}} zwaną {{Code|{{sr|#p.SzeregiOmijanieFunkcyjne(tekst,...)|p=Szeregi}}}}. Domyślnym wzorem jest {{Code|<nowiki>&([^&;%s]+);</nowiki>}}, ale można go zmienić na inny. Drugą funkcją podawaną do tej funkcji jest domyślnym obiektem funkcyjnym anonimowym, który nie podaje się do funkcji w nagłówku: <syntaxhighlight lang="lua"> function(kod) return "&"..kod..";"; end </syntaxhighlight> Gdzie {{Code|kod}} jest elementem przechwytywanym kodu {{Strong|HTML}}, który jest określony poprzez nawiasy okrągłe we wzorze podawanym jako argument lub jeśli jest on równy {{Code|nil}}, wtedy we wzorze domyślnym. Funkcja służy do omijania wszystkich kodów {{Strong|HTML}} lub tylko niektórych i robienia na nich operacji za pomocą funkcji podawanej jako ostatni parametr. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodowanieOmijanieFunkcyjne(html,normalnie,wzor,funkcja)...end; </syntaxhighlight> Parametry: * {{Code|html}} - ciąg do przetworzenia, w częściach bez parametrów omijanych, * {{Code|normalnie}} - czy ma przetwarzać tekst pomijając, w przeciwnym wypadku tak nie robi, * {{Code|wzor}} - wzór do elementów pomijanych, wzór może mieć tylko jeden element przechwytywany, * {{Code|funkcja}} - funkcja robiąca operacje na przetworzonych subciągach bez elementów pomijanych. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest tekst wywołania: \"&#35;\""; local tekst2=html_modul.KodowanieOmijanieFunkcyjne(tekst,true,"&(#35);",function(tekst) return mw.uri.encode(tekst); end); </syntaxhighlight> Wynik jest: <syntaxhighlight lang="lua"> local tekst2="Oto+jest+tekst+wywo%C5%82ania%3A+%22&#35;%22"; </syntaxhighlight> == {{Code|p["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](frame)}} == Funkcja zamienia znaki specjalne wikikodu i wyrażeń regularnych na kody dziesiętne {{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 z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKlasyZnakowejDoKoduHtmlCiągu|tekst=Oto jest link: [[user:użytkownik|(Użytkownik)]].}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKlasyZnakowejDoKoduHtmlCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; </syntaxhighlight> == {{Code|p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)}} == Zamienia w tekście znaki kodów {{Strong|HTML}} dziesiętne i szesnastkowe na odpowiednie znaki {{Strong|Unicode}}. Kody dziesiętne oznaczone są wyrażone wyrażeniem regularnym: {{Code|<nowiki>&#(%d+);</nowiki>}}, a szesnastkowe: {{Code|<nowiki>&#x(%x+);</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["TransformacjaKoduHtmlDoZnakuCiągu"]=function(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany kodów {{Strong|HTML}}, o odpowiednim formacie w opisie, na znaki. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|TransformacjaKoduHtmlDoZnakuCiągu|tekst=Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Oto jest link: &#91;&#91;user:użytkownik&#124;&#40;Użytkownik&#41;&#93;&#93;&#46;"; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{tekst=tekst,}; -- Równoważne: local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"]{args={tekst=tekst,},}; local tekst2=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Oto jest link: [[user:użytkownik|(Użytkownik)]]."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneTaguNowiki(frame)}} == Funkcja zamienia znaki specjalne, w tekście (w zawartości pomiędzy tagami tagu {{Tag|nowiki}}, by potem je tam umieścić, by pierwotna zawartość równała się tekstowi wysietlanemu (aby on zamieniał się na tylko zwykły tekst, by nie był dalej rozwijalny względem funkcji: {{Code|frame:preproces}})), wikikodu na kody dziesiętne {{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 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 z podanego zestawu znaków, występujących w tagach języka '''HTML''' do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneTaguNowiki|tekst=<span id="toc">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>.}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"toc\">Oto jest tekst, i link: [[Pomoc:Spis treści|Spis treści]]</span>."; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneTaguNowiki{args={tekst=tekst,},}; local tekst2=html_modul.ZnakiSpecjalneTaguNowiki(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#60;span id&#61;\"toc\"&#62;Oto jest tekst, i link: &#91;&#91;Pomoc:Spis treści&#124;Spis treści&#93;&#93;&#60;/span&#62;."; </syntaxhighlight> == {{Code|p.ZnakiSpecjalneWikiLinku(frame)}} == Zamienia znaki specjalne transformacji nagłówka adresów '''HTML''' (nagłówek zaczyna się od znaku {{Code|<nowiki>#</nowiki>}} - na samym końcu, w adresach stron, ale na samym początku w nich) na specjalne kody {{Strong|HTML}}. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZnakiSpecjalneWikiLinku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZnakiSpecjalneWikiLinku|tekst={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZnakiSpecjalneWikiLinku{args={tekst=tekst,},}; local html2=html_modul.ZnakiSpecjalneWikiLinku(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1=wartość1&#124;parametr 2=wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeSpecjalneZnakiHtml(frame,...)}} == Zamienia znaki specjalne adresu strony, jego parametrów (bez {{Code|<nowiki>?</nowiki>}} - wskazującej na początek adresu strony z parametrami, {{Code|<nowiki>&</nowiki>}} - oddzielające zmienne i ich wartości, {{Code|<nowiki>=</nowiki>}} - oddzielającej parametr od jej wartości w zmiennej) i nagłówka (bez {{Code|<nowiki>#</nowiki>}} na samym początku) na specjalne kody {{Strong|HTML}}, aby były one odróżnialne od innych specjalnych znaków adresów '''HTML'''. Do tego celu wykorzystuje znaki {{Code|<nowiki>{}|<>[]#=?&</nowiki>}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeSpecjalneZnakiHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|html}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeSpecjalneZnakiHtml|html={{#invoke:Łatki|unstripNoWiki|tekst=<nowiki>[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}</nowiki>}}}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|html2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local html="[pl] Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: {{Szablon do używania|parametr 1=wartość1|parametr 2=wartość2}}"; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{html=html,}; -- Równoważne: local html2=html_modul.EncodeSpecjalneZnakiHtml{args={html=html,},}; local html2=html_modul.EncodeSpecjalneZnakiHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local html2="&#91;pl&#93; Strony z nagłówkiem (mechanizmu HTML), a w nim jest szablon: &#123;&#123;Szablon do używania&#124;parametr 1&#61;wartość1&#124;parametr 2&#61;wartość2&#125;&#125;"; </syntaxhighlight> == {{Code|p.EncodeZnakProloguList(frame)}} == Szablon zamienia pierwszy znak wiki-listy (więc znak po {{Code|<nowiki>\n</nowiki>}}), tzn. znaki z: {{Code|<nowiki>#*;:</nowiki>}} na kod {{Strong|HTML}}, a znak bezpośrednio na samym początku od pewnego momentu, tzn. ten znak jest po znaku lub samym początku, to jest określane przez wyrażenie regularne: {{Code|<nowiki>^\n?</nowiki>}}, ten znak wiki-listy zamieniany jest na ten kod, a początkowy znak nowej linii, jeżeli istnieje, jest usuwany. To jest przyszykowane po to, gdyby w szablonie pierwszy wygenerowany znak, był tym znakiem listy (wtedy mechanizm {{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 z podanego zestawu znaków pierwszych znaków listy do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|EncodeZnakProloguList|tekst= * Oto jest pierwszy element listy, *: Oto jest drugi element listy. }} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="\n* Oto jest pierwszy element listy,\n*: Oto jest drugi element listy."; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.EncodeZnakProloguList{args={tekst=tekst,},}; local tekst2=html_modul.EncodeZnakProloguList(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#42; Oto jest pierwszy element listy,\n&#42;: Oto jest drugi element listy."; </syntaxhighlight> == {{Code|p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,...)}} == Eliminuje znaki specjalne nazw stron, bez parametrów, a parametry, tam gdzie one nie mogą występować, a jednak występują, opisujące parametry, tzn. od czego zaczynają się one, jak są one oddzielone, jak oddzielone są nazwy od ich wartości w przypadku parametru. Funkcja zamienia znaki {{Code|<nowiki>=%?&</nowiki>}} na kody dziesiętne {{Strong|HTML}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Funkcja potrafi opcjonalnie omijać kody {{Strong|HTML}}, w zależności od podanego drugiego parametru. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryPrzypisaniaZnakowegoEncodeHtml(frame,normalnie)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}. Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany z podanego zestawu znaków do kodu, o formacie podanym w opisie, {{Strong|HTML}}, * {{Code|normalnie}} - czy ma omijać kody {{Strong|HTML}}, jeżeli jej wartość odpowiada wqartości logicznej {{Code|false}}, wtedy liczy się jej wesrja parametrowa funkcji. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ParametryPrzypisaniaZnakowegoEncodeHtml|tekst=Wikibooks:Strona?action=edit&section=2}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona?action=edit&section=2"; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.ParametryPrzypisaniaZnakowegoEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#63;action&#61;edit&#38;section&#61;2"; </syntaxhighlight> == {{Code|p.PrzypisanieZnakoweEncodeHtml(frame)}} == Eliminuje znaki specjalne nazw stron, oddzielające nazwy parametrów od ich wartości, aby jak dana zmienna jest nienazwana (numerowana), aby nie była traktowana jako nazwana ze względu na występowanie znaku równości {{Code|{{=}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.PrzypisanieZnakoweEncodeHtml(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|tekst}} - zmienna, pod którym wyszukuje tekst do zamiany znaków przypisania {{Code|{{=}}}} do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|PrzypisanieZnakoweEncodeHtml|tekst=Wikibooks:Strona=Parametry}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="Wikibooks:Strona=Parametry"; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml{args={tekst=tekst,},}; local tekst2=html_modul.PrzypisanieZnakoweEncodeHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="Wikibooks:Strona&#61;Parametry"; </syntaxhighlight> Użycie w szablonie w postaci parametry nienazwanego (numerowanego): <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona=Parametry}} </syntaxhighlight> może powodować pewne problemy, ta zmienna nie zostanie nazwana jako nienazwana, tylko jako nazwana o nazwie parametru {{Code|Wikibooks:Strona}} i wartości {{Code|Parametry}}. Aby tego uniknąć, wypadałoby napisać to wywołanie: <syntaxhighlight lang="mediawiki"> {{Nazwa szablonu|Wikibooks:Strona&#61;Parametry}} </syntaxhighlight> Wtedy to zostanie na pewno zostanie potraktowane jako zmienna nienazwana (numerowana). Szczególnie to jest ważne, gdy używamy funkcji: {{Code|{{sr|#p["Rozwiń"](frame)|p=Ramka}}}}, do rozwijania parametrów. W takim przypadku trzeba używać funkcji: {{Code|{{sr|#p.PrzypisanieZnakoweEncodeHtml(frame)|p=Html}}}}, aby zamienić przypisanie na parametr numerowany. == {{Code|p.ZamianaDwukropkaNaKodHtml(frame)}} == Zamienia dwukropki na kody dziesiętne {{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 z znaku dwukropka do kodu, o formacie podanym w opisie, {{Strong|HTML}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|tekst}}. Funkcja może też być wywołane w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} wikikodu w szablonie: <syntaxhighlight lang="mediawiki"> {{#invoke:Html|ZamianaDwukropkaNaKodHtml|tekst=subst:msg:Szablon:Nazwa_strony}} </syntaxhighlight> Wynikiem tego jest wartość, której odpowiada wartość zmiennej ukrytej pod nazwą {{Code|tekst2}} poniżej. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="subst:msg:Szablon:Nazwa_strony"; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{tekst=tekst,}; -- Równoważne: local tekst2=html_modul.ZamianaDwukropkaNaKodHtml{args={tekst=tekst,},}; local tekst2=html_modul.ZamianaDwukropkaNaKodHtml(tekst); </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="subst&#58;msg&#58;Szablon&#58;Nazwa_strony"; </syntaxhighlight> == {{Code|p.KodHTMLZnaku(frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodHTMLZnaku}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia zadany znak na kod dziesiętny {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.KodHTMLZnaku(frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - zmienna, pod którym jest znak do zamiany na kod, o podanym formacie, {{Strong|HTML}}, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}}, a znak {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local znak="k"; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{[1]=znak,}; -- Równoważne: local tekst2=html_modul.KodHTMLZnaku{args={[1]=znak,},}; local tekst2=html_modul.KodHTMLZnaku(znak); -- Równoważne: local tekst3=html_modul.KodHTMLZnaku{[1]=znak,[1]="tak",}; local tekst3=html_modul.KodHTMLZnaku{args={[1]=znak,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="&#107;"; local tekst3="&amp;&num;107;"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodHTMLZnaku|k}}}} → {{Tt|{{KodHTMLZnaku|k}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k}}}}}} * {{Code|{{s|KodHTMLZnaku|k|tak}}}} → {{Tt|{{KodHTMLZnaku|k|tak}}}} * {{Code|{{s|Nowiki|{{s|KodHTMLZnaku|k|tak}}}}}} → {{Tt|{{Nowiki|{{KodHTMLZnaku|k|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "&#107;"; --> {{#invoke:Html|KodHTMLZnaku|k|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "&amp;&num;107;"; --> {{#invoke:Html|KodHTMLZnaku|k|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p["KodyHTMLZnakówWikiCiągu"](frame)}} == === Odpowiednik szablonowy === Odpowiednik szablonowy jest pod nazwą {{s|KodyHTMLZnakówWikiCiągu}}. Jego parametry są podobne do jego wersji bibliotecznej. Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce. === Funkcja biblioteczna === Zamienia ściśle określone znaki (zestaw kodów znajduje się na stronie: {{Code|{{ls2|KodyHTMLZnakówWikiCiągu/opis}}}}) na kody dziesiętne {{Strong|HTML}}, wedle podanych parametrów lub po zamianie znak {{Code|{{Nowiki|&}}}} jest zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|{{Nowiki|#}}}} na {{Code|{{Nowiki|&num;}}}}. Funkcja potrzebuje do wyszukiwania parametrów do działania, funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p["KodyHTMLZnakówWikiCiągu"](frame)...end; </syntaxhighlight> Parametry ramki funkcji tablicy transportu: * {{Code|1}} - ciąg, pod którym są możliwe ściśle określone znaki są zamieniane na kod, o podanym formacie, {{Strong|HTML}}, ciąg ten jest ze znakami wiki w UTF8, * {{Code|2}} - czy znak {{Code|{{Nowiki|&}}}} ma być zamieniany na {{Code|{{Nowiki|&amp;}}}} i {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;}}}}. Jeżeli funkcja znalazła tablicę ramki {{Code|frame.args}}, to wyszukuje w niej parametry, a jeżeli nie, to w {{Code|frame}}, a jeśli frame nie jest tabelką, tylko tekstem, to to zwraca jej zawartość tylko za pierwszym razem, a za drugim razem już {{Code|nil}}, a ta funkcja w takim przypadku raz wyszukuje ten argument, ale wtedy musi być podany parametr {{Parametr|wyspecjalizowana|tak}}, gdy mamy zmienną {{Code|frame.args}}, a jeżeli ten argument nie został podany z wartością niepustą, wtedy są wyszukiwane elementy z {{Code|frame:getParent().args}}. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="k{{s"; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,}; -- Równoważne: local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,},}; local tekst2=html_modul["KodyHTMLZnakówWikiCiągu"](znak); -- Równoważne: local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{[1]=tekst,[1]="tak",}; local tekst3=html_modul["KodyHTMLZnakówWikiCiągu"]{args={[1]=tekst,[2]="tak",},}; </syntaxhighlight> Wynikiem działania funkcji jest: <syntaxhighlight lang="lua"> local tekst2="k&#123;&#123;s"; local tekst3="k&amp;&num;123;&amp;&num;123;s"; </syntaxhighlight> Szablonowo taką zamianę możemy napisać: * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s}}}}}} * {{Code|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}} → {{Tt|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}} * {{Code|{{s|Nowiki|{{s|KodyHTMLZnakówWikiCiągu|k{{s|((}}s|tak}}}}}} → {{Tt|{{Nowiki|{{KodyHTMLZnakówWikiCiągu|k{{((}}s|tak}}}}}} Równie dobrze możemy napisać takie wywołania w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: <syntaxhighlight lang="mediawiki"> <!-- Wyświetla wynik: "k&#123;&#123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|wyspecjalizowana=tak}} <!-- Wyświetla wynik: "k&amp;&num;123;&amp;&num;123;s"; --> {{#invoke:Html|KodyHTMLZnakówWikiCiągu|k{{((}}s|tak|wyspecjalizowana=tak}} </syntaxhighlight> == {{Code|p.EncodeId(...)}} == Funkcja służy do opcjonalnego dekodowania ciągów znakowych według {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}, i cały ciąg od specjalnych znaków jest transformowany przez funkcję {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeId(id,bez_transformacji)...end; </syntaxhighlight> Parametry nieramkowe normalne funkcji: * {{Code|id}} - ciąg do przeinaczenia, * {{Code|bez_transformacji}} - gdy nie {{Code|false}} lub {{Code|nil}}, funkcja nie transformuje na podstawie: {{Code|{{sr|#p.DecodeHtml(...)|p=Html}}}}. Przykłady użycia: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,false); </syntaxhighlight> Wynikiem tego: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa"; </syntaxhighlight> Gdy: {{Code|bez_transformacji{{=}}true}}, funkcja działa jak: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale wtedy {{Code|frame{{=}}id}}, a przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local id="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local id2=html_modul.EncodeId(id,true); </syntaxhighlight> Wynikiem działania jest wartość ostatniej zmiennej: <syntaxhighlight lang="lua"> local id2="https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link_wewn%C4%99trzny&#38;action&#61;edit&#35;Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)}} == Usuwa z tekstu znak numer {{Code|8206}} zestawu {{lpg|Unicode}}, który można napisać, jeśli jest widoczny na ekranie komputera {{Code|&#8206;}} (znak {{Code|{{Nowiki|&#8206;}}}}). Ten znak oczywiście Unicode jest w grupie zwanej invisible Unicode characters i służy do ustawiania kierunku tekstu lewo do prawo. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)...end; </syntaxhighlight> Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tutaj jest zakodowany znak HTML, o kodzie dziesiętnym "&#8206;", składający się z trzech bajtów: "&#226;", "&#128;" i "&#142;"; local tekst="Oto jest znak: &#8206;."; -- Zamiana tego kodu na znak; tekst=html_modul["TransformacjaKoduHtmlDoZnakuCiągu"](tekst); -- Tekst bez tego znaku, bo on został w tym wywołaniu całkowicie usunięty; tekst=html_modul.UsuwanieSpecjalnychNieschematycznychSymboli(tekst); </syntaxhighlight> Wynikiem tego kodu jest wartość ukryta pod zmienną: <syntaxhighlight lang="lua"> local tekst="Oto jest znak: ."; </syntaxhighlight> == {{Code|p.EncodeWiki(...)}} == Funkcja transformuje kody {{Strong|HTML}} do znaku przy pomocy funkcji {{Code|{{sr|#p["TransformacjaKoduHtmlDoZnakuCiągu"](frame)|p=Html}}}}, usuwa nieschematyczne znaki o kodzie {{Code|{{Nowiki|&#8206;}}}} dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie opcjonalnie usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu, i zamienia wewnątrz znaki kolejne odstępów lub dolnych myślników na jeden dolny myślnik na podstawie {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}, dalej zaraz funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.encode|n=mw.text.encode}}}} koduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeWiki(parametr,czy_nie_odstepy)...end; </syntaxhighlight> Parametry: * {{Code|parametr}} - tekst, który chcemy zakodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: \"&#8206;\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;\"__"; local parametr2=html_modul.EncodeWiki(parametr,false); local parametr3=html_modul.EncodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartości: <syntaxhighlight lang="lua"> local parametr2="Oto_jest_znak:_&quot;&quot;_i_inne_znaki_w_URL:_&quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewnętrzny&amp;action=edit#Obsługa;&quot;"; local parametr3="__Oto jest znak: &quot;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&amp;action=edit#Obsługa;&quot;__"; </syntaxhighlight> == {{Code|p.DecodeWiki(...)}} == Funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.text.decode|n=mw.text.decode}}}} dekoduje tekst, tą funkcją {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Następnie usuwa nieschematyczne symbole: {{Code|{{Nowiki|&#8206;}}}}, dzięki funkcji: {{Code|{{sr|#p.UsuwanieSpecjalnychNieschematycznychSymboli(parametr)|p=Html}}}}, następnie działa opcjonalnie funkcją, która usuwa znaki będące odstępami lub dolnymi myślnikami z początku i końca tekstu oraz zamieniając wewnątrz znaki kolejne odstępów lub dolnych myślników na jedną dolną spacją na podstawie {{Code|{{sr|#p["Odstępy"](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 odkodować, * {{Code|czy_nie_odstepy}} - czy nie ma na tekst podziałać funkcją {{Code|{{sr|#p["Odstępy"](frame)|p=Parametry}}}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local parametr="__Oto jest znak: &quot;&#8206;&quot; i inne_znaki_w_URL: &quot;https://pl.wikibooks.org/w/index.php&#63;title&#61;Szablon:Link wewnętrzny&#38;action&#61;edit&#35;Obsługa;&quot;__"; local parametr2=html_modul.DecodeWiki(parametr,false); local parametr3=html_modul.DecodeWiki(parametr,true); </syntaxhighlight> Wynikiem działania tej funkcji jest parametr {{Code|parametr2}} i {{Code|parametr3}}, którego wartość: <syntaxhighlight lang="lua"> local parametr2="Oto jest znak: \"\" i inne znaki w URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\""; local parametr3="__Oto jest znak: \"\" i inne_znaki_w_URL: \"https://pl.wikibooks.org/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa;\"__"; </syntaxhighlight> == {{Code|p.IsEncodedHtml(...)}} == Funkcja sprawdza, czy można uznać, że funkcja jest zakodowana, tzn. dalej nie warto jej kodować przy pomocy funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, czy dekodować, bo już można uznać ją za odkodowaną, czyli nie trzeba stosować funkcji: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}. Funkcja zwraca wartość {{Code|true}}, jak można uznać tekst za zakodowany i {{Code|false}}, gdy jest niezakodowana. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.IsEncodedHtml(parametr,encode,encode_real)..end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do sprawdzenia - wymagany, * {{Code|encode}} - gdy jest sprawdzana tylko obecność znaku {{Code|%}}, * {{Code|encode_real}} - gdy jest sprawdzana, nie tylko obecność znaku {{Code|%}}, też czy {{Code|parametr}} jest ciągiem podporządkowanym wyrażeniu regularnemu {{Code|<nowiki>^[%w%p%s]*$</nowiki>}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Pierwszy przykład: local parametr1="abc?edit=action"; -- Wartość zmiennej obliczona jest: czy_tak1=true, czyli parametr1 można uznać za zakodowany; local czy_tak1=html_modul.IsEncodedHtml(parametr1,true,false); -- Drugi przykład: local parametr2="a%YTbc?edit=action;"; -- Wartość zmiennej obliczona jest: czy_tak2=false; czyli parametr2można uznać, że nie jest zakodowany; local czy_tak2=html_modul.IsEncodedHtml(parametr2,true,false); </syntaxhighlight> == {{Code|p.EncodeHtml(...)}} == Funkcja sprawdza, czy podany parametr do transformacji uznać za zakodowany, jeżeli za taki zostanie uznany, wtedy zostanie, to on zostanie potraktowany funkcją {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, a jeżeli nie to zostanie wywołana funkcja: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}} (z parametrem "WIKI"). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHtml(parametr,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry funkcji: * {{Code|parametr}} - parametr do transformacji kodowania, * {{Code|encode}} i {{Code|encode_real}} - te parametry to samo oznaczają, co w funkcji: {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - to samo oznacza, co w funkcji {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. {{Hr}} Przykłady pierwszy - podany tekst już zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="abc___&#63;action&#61;edit&#38;section&#61;21&#35;nagłówek"; -- Tekst zostanie uznany za zakodowany, sprawdzane, czy on ma znaki "%", czyli on tego nie posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że podwojone myślniki dolne zostały zamienione na pojedyncze, kody HTML zostały zamienione na znaki, a znak "&#38;", czyli "&" został zamieniony na "&amp;"; local parametr2="abc_?action=edit&amp;section=21#nagłówek"; </syntaxhighlight> {{Hr}} Przykłady drugi - podany tekst jeszcze nie zakodowany: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst do zakodowania; local parametr="a%YTbc___?action=edit;"; -- Tekst zostanie uznany za niezakodowany, czy on ma znaki "%", czyli on to posiada; local parametr2=html_modul.EncodeHtml(parametr,true,false,false); </syntaxhighlight> Wynik zmiennej {{Code|parametr2}} jest ukryty pod jego wartością: <syntaxhighlight lang="lua"> -- Widzimy, że znak "%" został zakodowany funkcją mw.uri.encode, podobnie tą funkcją zostały zakodowane: "?" i "="; local parametr2="a%25YTbc___%3Faction%3Dedit;"; </syntaxhighlight> == {{Code|p.DecodeHtml(...)}} == Funkcja sprawdza, czy {{Code|parametr}}, czy można uznać za zakodowany, a jeżeli można, to on zostanie w zależnosci od parametru {{Code|spacje}}, to odpowiednio zostanie wywołana {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a następnie w zależności od parametru (opis w parametrach) zostanie wywołana odpowiednia funkcja odkoduwująca lub kodująca {{Code|wiki}}. Jeżeli ciąg rzeczywiście jest uznany za niezakodowany jest podobnie odpowiednio z tylko z wywołaniami funkcji {{Code|wiki}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHtml(parametr,spacje,encode,encode_real,czy_nie_odstepy)...end; </syntaxhighlight> Parametry:z * {{Code|parametr}} - parametr do odkodowania, * {{Code|spacje}} - gdy parametr odpowiada {{Code|true}} używa funkcji {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}}, w przeciwnym wypadku: {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}, ale wpierw musi zostać wywołana funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}} w przypadku, gdy ciąg zostanie uznany za zakodowany, jak to robi funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, * {{Code|encode}} i {{Code|encode_real}} - te parametry są używane przez funkcje {{Code|{{sr|#p.IsEncodedHtml(...)|p=Html}}}}, * {{Code|czy_nie_odstepy}} - gdy ciąg został uznany za niezakodowany, wtedy to jest drugi parametr funkcji: {{Code|{{sr|#p.DecodeWiki(...)|p=Html}}}} lub {{Code|{{sr|#p.EncodeWiki(...)|p=Html}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Parametr zawiera znaki zakodowane funkcją mw.uri.encode i kody HTML znaków; local parametr="a%25YTbc___%3Faction%3Dedit&#38;section&#61;23;"; local parametr2=html_modul.DecodeHtml(parametr,true); </syntaxhighlight> Wynik funkcji jest ukryty pod adresem: <syntaxhighlight lang="lua"> -- Funkcja została uznana za zakodowaną i odkodowano ją funkcją mw.uri.decode, dalej dwa dolne myślniki zostały zamienione na jedną spację, a kody HTML zostały zamienione na odpowiednie znaki; local parametr2="a%YTbc ?action=edit&section=23;"; </syntaxhighlight> == {{Code|p.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(znacznik)}} == Szuka atrybutów w cudzysłowach i w nich elementy {{Code|<nowiki><>&</nowiki>}} zamienia na kody dziesiętne {{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, o odpowiednim formacie, {{Strong|HTML}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="<span id=\"Znaki<>\\\"\">To jest zawartość</span>"; local tekst2=html_modul.TekstoweZnakiTypowoTagoweParametroweZamienianiaNaKodHtml(tekst); </syntaxhighlight> Wartość tej zmiennej jest ukryta pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że został sam jeden atrybut ze znakami HTML wewnątrz; local tekst2="<span id=\"Znaki&lt;&gt;&#92;&#34;\">To jest zawartość</span>"; </syntaxhighlight> == {{Code|p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)}} == Zamienia kody {{Strong|HTML}}, tzn.: {{Code|{{Nowiki|&lt;}}}}, {{Code|{{Nowiki|&gt;}}}} i {{Code|{{Nowiki|&amp;}}}}, na odpowiednio znaki, a także elementy {{Code|{{Nowiki|&#92;&#34;}}}} na {{Code|<nowiki>\"</nowiki>}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(value)...end; </syntaxhighlight> Parametry: * {{Code|value}} - parametr do transformacji niektórych kodów {{Strong|HTML}} na znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="&lt;a href=\"/wiki/Strona?tytan1=1&amp;tytan2=2\" id=\"Strona:&#92;&#34;nazwa&#92;&#34;\"&gt;Zawartość znacznika&lt;/a&gt;"; local tekst2=html_modul.TekstoweKodyHtmlZnacznikoweTypowoTagoweParametroweZamienianiaNaZnak(tekst); </syntaxhighlight> Otrzymana zawartość jest pod {{Code|tekst2}}: <syntaxhighlight lang="lua"> -- Widzimy, że kody odpowiednie HTML, tzn.: "&lt;", "&gt;" i "&amp;" zostały zamienione na odpowwiednie znaki; local tekst2="<a href=\"/wiki/Strona?tytan1=1&tytan2=2\" id=\"Strona:\\\"nazwa\\\"\">Zawartość znacznika</a>"; </syntaxhighlight> == {{Code|p["NagłówekStronyAdresu"](frame,...)}} == Funkcja wydziela nagłówek z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NagłówekStronyAdresu"]=function(frame,czy_nie_dolne_myslniki,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_nie_dolne_myslniki}} - gdy {{Code|true}}, jeśli w nagłówku nie ma prawa być dolnych myślników, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Funkcja usuwa zbędne odstępy i dolne myślniki na końcach nagłówka, i powtarzające się znaki będące odstępami lub dolnymi myślnikami są zastępowane przez jedną spację, gdy {{Code|czy_nie_dolne_myslniki}} równa jest wartości odpowiadającej {{Code|true}}, w przeciwnym wypadku zamieniana jest ona na jeden dolny myślnik. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_nie_dolne_myslniki}} (parametr funkcji), {{Code|2}} lub {{Code|z nie dolnymi z myślnikami}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local naglowek=html_modul["NagłówekStronyAdresu"](strona,true,tabela_nazw_adresu); local naglowek=html_modul["NagłówekStronyAdresu"]({strona=strona,["z nie dolnymi z myślnikami"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony, nagłówek usuwając z niego myślniki dolne i trimując zawartość; local naglowek="Nagłówek strony"; </syntaxhighlight> == {{Code|p["ParametryStronyAdresu"](frame,...)}} == Funkcja wydziela parametry z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["ParametryStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów adresu, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["ParametryStronyAdresu"](strona,true,tabela_nazw_adresu); local parametry=html_modul["ParametryStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony parametry, usuwając z niego zbędne odstępy i myślniki dolne; local parametry="action=edit&section=2"; </syntaxhighlight> == {{Code|p["NazwaStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z adresu strony, funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["NazwaStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z adresu strony, bez parametrów i nagłówka, wydzieloną z pełnego adresu strony, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["NazwaStronyAdresu"](strona,true,tabela_nazw_adresu); local nazwa_strony=html_modul["NazwaStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę strony adresu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="https://pl.wikibooks.org/wiki/Strona_główna"; </syntaxhighlight> == {{Code|p["NazwaStronyZParametrówStronyAdresu"](frame,...)}} == Funkcja wydziela nazwę strony z parametrów adresu strony. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. <syntaxhighlight lang="lua"> p["NazwaStronyZParametrówStronyAdresu"]=function(frame,czy_naprawiaj)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma suwać zbędne odstępy i dolne myślniki z parametrów strony adresu, i czy zamieniać je na pojedyncze spacje wewnątrz nazwy artykułu wydzieloną z parametrów strony. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}} lub {{Code|parametry}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|parametry}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="title=Strona ___ główna & action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; -- Równoważne: local parametry=html_modul["NazwaStronyZParametrówStronyAdresu"](strona,true); local nazwa_strony=html_modul["NazwaStronyZParametrówStronyAdresu"]({parametry=strona,["czy naprawiać"]=true,},nil); </syntaxhighlight> Wartość nagłówka jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z adresu strony nazwę artykułu, usuwając z niego zbędne odstępy i myślniki dolne; local nazwa_strony="Strona główna"; </syntaxhighlight> == {{Code|p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](frame,...)}} == Funkcja poprawia pełny adres strony, rozdzielając ją na części, a później łącząc. Funkcja ma własną tabelę buforową nazw. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]=function(frame,czy_naprawiaj,tabela_nazw_adresu)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki funkcji tablicy transportu, * {{Code|czy_naprawiaj}} - parametr przedstawiający, czy ma naprawiać pełny adres strony, działając w sposób specyficzny w zależności od funkcji, która operuje na jej częściach, wykorzystując funkcje, które są napisane w linii zaraz poniżej, * {{Code|tabela_nazw_adresu}} - tabela nazw zespołu funkcji, która obejmuje funkcje {{Code|{{sr|#p["NagłówekStronyAdresu"](frame,...)|p=Html}}}}, {{Code|{{sr|#p["ParametryStronyAdresu"](frame,...)|p=Html}}}} i {{Code|{{sr|#p["NazwaStronyAdresu"](frame,...)|p=Html}}}}. Parametry funkcji ramki parametry {{Code|frame}}: * {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}} - nazwa jednostki (strony), tzn. jego adres, * {{Code|czy_naprawiaj}} (parametr funkcji), {{Code|2}} lub {{Code|czy naprawiać}} - znaczą to samo, co pierwszy parametr w tym wierszu, który jest parametrem funkcji. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}}, {{Code|strona}} lub {{Code|nazwa jednostki}}. Przykład: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona="https://pl.wikibooks.org/wiki/Strona ___ główna ? action____=____edit ____&____ section = 2 # ____ Nagłówek____________strony "; local tabela_nazw_adresu={}; -- Równoważne: local parametry=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"](strona,true,tabela_nazw_adresu); local adres=html_modul["PoprawAdresNagłówkaOrazParametrówStronyAdresu"]({strona=strona,["czy naprawiać"]=true,},nil,tabela_nazw_adresu); </syntaxhighlight> Wartość pełnego adresu strony poprawiona jest w zmiennej: <syntaxhighlight lang="lua"> -- Wydzielono z pełnego adresu strony adres, parametry i nagłówek, naprawione i złączone ze sobą w pełny poprawiony adres; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.URLStrona(frame)}} == Funkcja z adresu '''URL''' wydziela nazwę serwera i nazwę strony. On nie może zawierać w sobie protokołu, tylko musi zaczynać od {{Code|<nowiki>//</nowiki>}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.URLStrona(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, * {{Code|2}} lub {{Code|ukośnik}} - czy do nazwy strony ma wliczać ukośnik. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"): local url="//pl.wikibooks.org/wiki/Strona_artykułu"; local serwer,nazwa=html_modul.URLStrona{url=url,["ukośnik"]=true,}; </syntaxhighlight> Wartości zmiennych kryją się pod: <syntaxhighlight lang="lua"> -- Widzimy, że nazwa serwera jest bez prawych ukośników; local serwer="pl.wikibooks.org"; -- Nazwa strony zaczyna się bez ukośnika, bo powiedzieliśmy funkcji, by nie brał prawych ukośników, które są na początku nazwy strony, bez nazwy serwera i protokołu, ale w sobie może mieć on, ale nie musi; local nazwa="wiki/Strona_artykułu"; -- Gdyby było ["ukośnik"]=false, to wtedy otrzymalibyśmy inny wynik, czyli: local nazwa="/wiki/Strona_artykułu"; </syntaxhighlight> == {{Code|p["UrlBezProtokołu"](frame)}} == Funkcja adresowi z protokołem usuwa to właśnie, a jak podamy adres „mail”, to podaje nazwę tego adresu, bez niego. Drugą zwracaną nazwą jest nazwa protokołu,a jak się nie da go wyznaczyć, to funkcja zwraca wartość {{Code|nil}}. Trzecia wartość, to numer sposoby, a jeżeli żaden sposób nie pasuje, to ta wartość jest {{Code|-1}}, a gdy adres mail {{Code|1}}, dla adresu z protokołem {{Code|2}}, a dla adresu bez protokołu {{Code|3}}. Funkcja do zbierania parametrów ramki {{Code|frame}} używa funkcji: {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Parametry}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["UrlBezProtokołu"]=function(frame)...end; </syntaxhighlight> Parametry ramki: * {{Code|1}} lub {{Code|url}} - adres strony, ewentualnie opcjonalnym protokołem. Kolejność ważności parametrów ramki jest, w jakiej kolejności są brane parametry, są w kolejności, w jakim te one przedstawiono. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|1}} lub {{Code|url}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local mail="użytkownik@skrzynka.org"; -- Równoważnie: local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"](mail); local adres1,protokol1,sposob1=html_modul["UrlBezProtokołu"]{url=mail,}; --- local url="https://pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"](url); local adres2,protokol2,sposob2=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="//pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"](url); local adres3,protokol3,sposob3=html_modul["UrlBezProtokołu"]{url=url,}; --- local url="pl.wikibooks.org/wiki/Strona"; -- Równoważnie: local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"](url); local adres4,protokol4,sposob4=html_modul["UrlBezProtokołu"]{url=url,}; </syntaxhighlight> Wyniki otrzymane z powyższych przykładów są: <syntaxhighlight lang="lua"> local adres1,protokol1,sposob1="//skrzynka.org","mail",1; local adres2,protokol2,sposob2="//pl.wikibooks.org/wiki/Strona","https",2; local adres3,protokol3,sposob3="//pl.wikibooks.org/wiki/Strona",nil,3; local adres4,protokol4,sposob4="//pl.wikibooks.org/wiki/Strona",nil,-1; </syntaxhighlight> == {{Code|p.DecodeKoduHTMLZnaku(tekst)}} == Zamienia kody {{Strong|HTML}}, tzn. literowe (ogólny wzór {{Code|<nowiki>&(%a+);</nowiki>}}), dziesiętne (ogólny wzór {{Code|<nowiki>&#(%d+);</nowiki>}}) i szesnastkowe (ogólny wzór {{Code|<nowiki>&#x(%x+);</nowiki>}}) na odpowiednie znaki. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeKoduHTMLZnaku(tekst)...end; </syntaxhighlight> Parametry funkcji: * {{Code|tekst}} - tekst do zamienienia z kodami, o opadym formacie, {{Strong|HTML}} na odpowiednie znaki. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst z kodami HTML: literowymi, dziesiętnymi i szesnastkowymi; local tekst="Oto jest link: &#x5B;&#x5B;Strona&#124;Nazwa linku&#93;&#x5D;, a w nim spacje niełamliwe&nbsp;i inne znaki: z alfabetu greckiego jak: &alpha;&Alpha;&beta;&Beta;&gamma;&Gamma;&delta;&Delta;&epsilon;&Epsilon;&zeta;&Zeta;&eta;&Eta;&theta;&Theta;&iota;&Iota;&kappa;&Kappa;&lambda;&Lambda;&mu;&Mu;&nu;&Nu;&xi;&Xi;&omicron;&Omicron;&pi;&Pi;&rho;&Rho;&sigma;&Sigma;&tau;&Tau;&upsilon;&Upsilon;&phi;&Phi;&chi;&Chi;&psi;&Psi;&omega;&Omega;"; -- Wywołanie funkcji odkodujący kody HTML; local tekst2=html_modul.DecodeKoduHTMLZnaku(tekst); </syntaxhighlight> Otrzymany wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Widzimy, że tekst został zdekodowany ze znaków HTML; local tekst2="Oto jest link: [[Strona|Nazwa linku]], a w nim spacje niełamliwe i inne znaki: z alfabetu greckiego jak: αΑβΒγΓδΔεΕζΖηΗθΘιΙκΚλΛμΜνΝξΞοΟπΠρΡσΣτΤυΥφΦχΧψΨωΩ"; </syntaxhighlight> == {{Code|p.ZamianaEncodeTekst(tekst)}} == Adres strony dekoduje funkcją: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie koduje, jeszcze więcej niż było na samym początku, według: {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeTekst(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do odkodowania i zakodowania jeszcze więcej niż było na początku zakodowane. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; local tekst2=html_modul.ZamianaEncodeTekst(tekst); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2}}: <syntaxhighlight lang="lua"> local tekst2="https%3A%2F%2Fpl.wikibooks.org%2Fw%2Findex.php%3Ftitle%3DSzablon%3ALink_wewn%C4%99trzny%26action%3Dedit%23Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)}} == Funkcja wyszukuje tekst do zamiany i działa na niego funkcją: {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)...end; </syntaxhighlight> Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Tekst nie do końca zakodowany wydzielonego według poniższego wzoru; local tekst="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; -- Wzór, który wydziela części do kodowania jeszcze bardziej niż były na samym początku; local wzor="[^/%?%=&:%#]+"; -- Wywołanie funkcji kodującej; local tekst2=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor); </syntaxhighlight> Wynikiem funkcji, co kryje się pod zmienną {{Code|tekst2:}} <syntaxhighlight lang="lua"> -- Zakodowało jeszcze więcej niż na samym początku było zakodowane; local tekst2="https://pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.StronaParametryIdentyfikacjaAdresuHtml(adres)}} == Funkcja z całkowitego adresu składający się z adresu właściwego, parametrów i nagłówka, rozdzielane jest na trzy części, z których się składa. Funkcja sprawdza, czy jakikolwiek kody {{Strong|HTML}} występują w pełnym adresie strony, jeżeli są to przedtem koduje jeszcze lepiej kody znaków {{Code|<nowiki>#</nowiki>}}, przy pomocy funkcji: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}, a później w kodach {{Strong|HTML}} znak {{Code|<nowiki>#</nowiki>}} jest zamieniany na kod literowy {{Strong|HTML}}, czyli: {{Code|{{Nowiki|&num;}}}}, funkcją: {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}} (jeżeli w adresie kody istnieją), wtedy cos powstaje w rodzaju dla kodu dziesietnego: {{Code|<nowiki>&&num;(%d+);</nowiki>}}, i szesnastkowego: {{Code|<nowiki>&&num;x(%x+);</nowiki>}} - gdzie w nich {{Code|<nowiki>#</nowiki>}} został zamieniony na {{Code|{{Nowiki|&num;}}}}, które są przedstawione według wyrażeń regularnych {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. Funkcja rozdziela to na trzy części, a później odkodowuje każdą część funkcją: {{Code|{{sr|#p.DecodeTempHashKoduHtmlTekstu(tekst,...)|p=Html}}}} (jeżeli w adresie kody w ogóle istniały), i podobnie później: {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}} (jeżeli kody znaku: {{Code|<nowiki>#</nowiki>}}, były wcześniej). Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.StronaParametryIdentyfikacjaAdresuHtml(adres)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do potrzelenia na trzy części. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#x23;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Adresstrony jedynie rozkładaa się na: "strona", "parametry" i "nagłówek"; local strona,parametry,naglowek=html_modul.StronaParametryIdentyfikacjaAdresuHtml(adres); </syntaxhighlight> Otrzymane wartości tych zmiennych kryją się pod adresami: <syntaxhighlight lang="lua"> local strona,parametry,naglowek="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; </syntaxhighlight> Funkcja zwraca trzy wartości, tzn. adres właściwy (bez parametrów i nagłówka), parametry (używane jako dodatek do adresów przy formułowaniu formularzy) i nagłówek (który jest adresem na stronie do odpowiedniego elementu o danym atrybucie: {{Code|id}}). == {{Code|p.TworzenieAdresuHtml(strona,...)}} == Funkcja łączy, stronę, parametry i nagłówek strony, w pełną nazwę strony (adresu), dalej jest uruchamiana funkcja ddekodująca ciagi znakowe: {{Code|{{Nowiki|&amp;&num;}}}}. Funkcja wykorzystuje do dekodowania tego {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieAdresuHtml(strona,parametry,naglowek)...end; </syntaxhighlight> Parametry: * {{Code|strona}} - nromalny adres strony, bez parametrów i nagłówka, * {{Code|parametry}} - parametry strony w formacie {{Code|nazwa{{=}}wartość}} oddzielone od siebie znakiem {{Code|<nowiki>&</nowiki>}}, * {{Code|nagłówek}} - nagłówek linkujący do {{Code|id}} jakiegos elementyna stronie, Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local strona,parametry,naglowek,ile="https://pl.wikibooks.org/wiki/Strona&#32;główna&num;&#35;&#x23;To_nie_jest nagłówek","action=edit&section=2","Nagłówek strony",3; local adres=html_modul.TworzenieAdresuHtml(strona,parametry,naglowek); </syntaxhighlight> Otrzymany pełny pojedynczy adres strony, z normalnym adresem strony z parametrami i nagłówkiem, jest ukryta: <syntaxhighlight lang="lua"> local adres="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#35;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> Funkcja zwraca całkowity adres z adresem właściwym, parametrami (po {{Code|<nowiki>?</nowiki>}}, jeżeli po nim występują wartości przyrównane nazwą zmiennych {{Strong|HTML}}) i nagłówkiem (po {{Code|<nowiki>#</nowiki>}}). == {{Code|p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)}} == Pełny adres strony, bezprotokolarny (lub protokolarny, jeżeli rozdzielimy, w pierwszej funkcji anonimowej w tej nagłówku, na protokół i adres bezprotokolarny, czyli na dwie części, zrobimy operacje, a później je złączymy w nim), linków zewnętrznych lub wewnętrznych, z adresem właściwym, parametrami i nagłówkiem strony, po podziale na je trzy części funkcją {{Code|{{sr|#p.StronaParametryIdentyfikacjaAdresuHtml(adres)|p=Html}}}}, następnie na każdą z tych elementów działamy odpowiednimi funkcjami, a potem ich wyniki łączymy w pełny adres strony funkcją {{Code|{{sr|#p.TworzenieAdresuHtml(strona,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,funkcja_strona,funkcja_parametry,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres do przetworzenia, * {{Code|funkcja_strona}} - funkcja, którą działamy na właściwy adres strony, bez parametrów i nagłówka, * {{Code|funkcja_parametry}} - funkcja, którą działamy na parametry adresu strony, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek strony adresu. Przykład takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local function ParametryEncodeURL(a,b,c) return a..html_modul.ZamianaEncodeTekst(b).."="..html_modul.ZamianaEncodeTekst(c); end; local function OperacjeHtml(adres) adres=mw.ustring.gsub(adres,"^(%??)([^&=]*)=([^&]*)",ParametryEncodeURL); adres=mw.ustring.gsub(adres,"(&)([^&=]*)=([^&]*)",ParametryEncodeURL); return adres; end; return html_modul.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres, -- Funkcja: funkcja_strona; function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, -- Funkcja: funkcja_parametry; OperacjeHtml, -- Funkcja: funkcja_naglowek; function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end ); </syntaxhighlight> == {{Code|p.ParametryEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.ZamianaEncodeTekst(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p.ParametryEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="//pl.wikibooks.org/w/index.php?title=Szablon:Link_wewn%C4%99trzny&action=edit#Obsługa"; local adres2=html_modul.ParametryEncodeURL(adres,true, function(strona) strona=html_modul.ZamianaEncodeNaPodstawieWzoruTekstu(strona,"[^/]+"); return strona; end, function(naglowek) naglowek=html_modul.ZamianaEncodeTekst(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="//pl.wikibooks.org/w/index.php?title=Szablon%3ALink_wewn%C4%99trzny&action=edit#Obs%C5%82uga"; </syntaxhighlight> == {{Code|p.ParametryZaawansowanyEncodeURL(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, ale przed nim wywoływana ajest funkcja {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.ParametryZaawansowanyEncodeURL(adres,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.ParametryZaawansowanyEncodeURL(adres,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodeSpecjalneZnakiHtml(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodeSpecjalneZnakiHtml(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeParametryHtml(parametr,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodeHtml(...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeParametryHtml(parametr,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeParametryHtml(adres,true, function(strona) strona=html_modul.EncodeHtml(strona); return strona; end, function(naglowek) naglowek=html_modul.EncodeHtml(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewn%C4%99trzny?action=edit#Obs%C5%82uga%3F"; </syntaxhighlight> == {{Code|p.EncodeZaawansowanyParametryHtml(adres,...)}} == Funkcja przystosowana do analizy adresu, tzn. przede wszystkim adresów bezprotokolarnych (lub protokolarnych, jeżeli rozdzielimy to na protokół i adres bezprotokolarny, czyli na dwie części, według pierwszej funkcji w tym nagłówku, zrobimy operacje, a później je złączymy) linków zewnętrznych i wewnętrznych, pełnego strony ze specjalistycznym analizatorem parametrów adresu, funkcja właściwy adres strony i nagłówek działa odpowiednimi funkcjami. Funkcja wykorzystuje lub nie, ale ma to w definicji, funkcję {{Code|{{sr|#p.TworzenieStronaParametryIdentyfikacjaAdresuHtml(adres,...)|p=Html}}}}. Funkcja też może też służyć do analizy tylko parametrów, jeżeli drugi parametr jest {{Code|false}} lub {{Code|nil}}, a jeżeli wartość odpowiada wartości logicznej {{Code|true}}, to trzeba rozpatrywać pełne adresy stron protokolarne, czy nie, omówione na początku w tym rozdziale. Przy analizie nazw i wartości parametrów wykorzystuje {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, a przed nim wywoływana jest {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a po nim jeżeli jest włączone kodowanie w zmiennej drugiej funkcji, wtedy {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeZaawansowanyParametryHtml(adres,z_kodowaniem,w_adresie,funkcja_strona,funkcja_naglowek)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - pełny adres strony z parametrami i nagłówkiem, * {{Code|z_kodowaniem}} - czy ostateczny nagłówek ma być zakodowany, * {{Code|w_adresie}} - czy rozpatrywać cały adres, a nie tylko parametry, * {{Code|funkcja_strona}} - funkcja, którą działamy na adres właściwy strony, bez parametrów i nagłówka, * {{Code|funkcja_naglowek}} - funkcja, którą działamy na nagłówek. Przykłady takiego wywołania: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodeZaawansowanyParametryHtml(adres,true,true, function(strona) strona=mw.uri.decode(strona); strona=html_modul.EncodePodstawoweHtmlTekstu(strona); strona=mw.uri.encode(strona); return strona; end, function(naglowek) naglowek=mw.uri.decode(naglowek); naglowek=html_modul.EncodePodstawoweHtmlTekstu(naglowek); naglowek=mw.uri.encode(naglowek); return naglowek; end); </syntaxhighlight> Wartość zmiennej {{Code|adres2}} jest w wartości: <syntaxhighlight lang="lua"> local adres2="Szablon%3ALink_wewn%C4%99trzny?action=edit#Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.EncodeHashKoduHtmlTekstu(tekst)}} == Funkcja koduje kod {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, czyli {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}}. Te wszystkie kody funkcja zamienia je z każdnych na kod: {{Code|{{Nowiki|&amp;num;}}}}. Funkcja zwraca przetworzony tekst, ze zmienną {{Code|ile}} mówiącej ile jest możliwych kodów na stronie, także z {{Code|ile2}} wskazującej, ile jest kodów na stronie rozwazanego znaku. Funkcja używana, gdy nie chcemy, by dodatkowe znaki {{Code|<nowiki>#</nowiki>}} przeskadzały na rozkład adresu strony na właściwy adres, parametry i nagłówek strony, co po rozkładzie wywoływana jest jego też jego funkcja odwrotna {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}, a tak powstałe znaki {{Code|{{Nowiki|&#35;}}}} ze wszystkich tych kodów {{Code|<nowiki>#</nowiki>}} według pewnych funkcji modułu {{Code|{{ld2|Html}}}}, że one nie zostaną odkodowane, bo są one pomijane. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Kody do zamienienia local tekst="&num;, &#35; i &#x23;"; -- Przetwarzanie tekstu local tekst2,ile,ile2=html_modul.EncodeHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik jest pod zmienną: <syntaxhighlight lang="lua"> -- Wszystkie możliwe warianty funkcja zamieniła na to samo, czyli na: "&amp;num;" kodu HTML "&num;" dla znaku "#"; local tekst2,ile,ile2="&amp;num;, &amp;num; i &amp;num;",3,3; </syntaxhighlight> == {{Code|p.DecodeHashKoduHtmlTekstu(tekst,ile)}} == Jeżeli dokonano zamiany możliwych kodów {{Code|{{Nowiki|&num;}}}}, {{Code|{{Nowiki|&#35;}}}} i {{Code|{{Nowiki|&#x23;}}}} na {{Code|{{Nowiki|&num;num}}}}, wtedy druga zmienna jest większa od zera, wtedy możliwa jest tego zamiana na kod {{Code|{{Nowiki|&#35;}}}} kodu {{Code|{{Nowiki|&num;num}}}}, używając tej funkcji. Funkcja używana, gdy właściwy adres, parametry i nagłówek strony zostały po rozłączeniu na te części z pełnego adresu strony, wraz z innymi funkcjami odkodowującymi znaki niektóre {{Strong|HTML}}, oraz jeżeli ciało jej wersji prostej została wywołana wcześniej. Jest to odwrotność funkcji {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeHashKoduHtmlTekstu(tekst,ile)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia, * {{Code|ile}} - {{Code|<nowiki>ile>0</nowiki>}}, jeżeli dokonano możliwych kodów znaku {{Code|<nowiki>#</nowiki>}} na {{Code|{{Nowiki|&num;num}}}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Zamienione wcześniej kody: tekstu "&num;, &#35; i &#x23;", kolejno na "&amp;num;"; local tekst="&amp;num;, &amp;num; i &amp;num;"; -- Odkodowanie znaków "&amp;num;" w tekście; local tekst2=html_modul.DecodeHashKoduHtmlTekstu(tekst,3); </syntaxhighlight> Wynik jest ukryty pod zmienną: <syntaxhighlight lang="lua"> local tekst2="&#35;, &#35; i &#35;"; </syntaxhighlight> == {{Code|p.EncodeTempHashKoduHtmlTekstu(tekst)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeTempHashKoduHtmlTekstu(tekst)...end; </syntaxhighlight> Parametry: * {{Code|tekst}} - tekst do przetworzenia. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&#35;" i "&#x23;" oraz jeden od spacji: "&#32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst oraz ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2"; local tekst2,ile1,ile2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2,ile1,ile2="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony",3,1; </syntaxhighlight> == {{Code|p.DecodeTempHashKoduHtmlTekstu(tekst,...)}} == Jeżeli mamy jakieś kody {{Strong|HTML}}, to aby one nie przeszkadzały w rozkładzie na właściwy adres, parametry i nagłówek strony, to te tam {{Code|<nowiki>#</nowiki>}} należy zamienić na {{Code|{{Nowiki|&num;}}}}. One tak zostały zamienione funkcją {{Code|{{sr|#p.EncodeTempHashKoduHtmlTekstu(tekst)|p=Html}}}}. Po rozłożeniu na trzy części pełnego adresu strony, tzn. na właściwy adres, parametry i nagłówek strony, możemy wywołać dla każdej z nich tę funkcję, wykonując operację odwrotną. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.DecodeTempHashKoduHtmlTekstu(tekst,ile1,ile2)...end; </syntaxhighlight> Parametry zwykłe funkcji: * {{Code|tekst}} - tekst do przetworzenia i po rozdzieleniu na trzy części, * {{Code|ile1}} - ile jest przetworzonych kodów dziesietnych prez funkcje do rozważanej prostej, * {{Code|ile2}} - ile jest przetworzonych kodów szesnastkowych przez funkcją do rozważanej prostej. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Mamy tutaj kody HTML znaku: "#", czyli: "&&num;35;" i "&&num;x23;" oraz jeden od spacji: "&&num;32;";, a tam "#"zamieniamy na "&num;"; local tekst="https://pl.wikibooks.org/wiki/Strona&&num;32;główna&&num;35;&&num;35;&&num;x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; -- Otrzymamy przetworzony tekst, do którego wsadzamy ile uzyskamy znaków z kodem HTML dziesiętnym "ile1" i szesnastkowym "ile2" w wywołaniu local tekst,ile1,ile2=p.EncodeTempHashKoduHtmlTekstu(tekst); local tekst2=html_modul.EncodeTempHashKoduHtmlTekstu(tekst,3,1); </syntaxhighlight> Wynik tego jest pod zmienną: <syntaxhighlight lang="lua"> local tekst2="https://pl.wikibooks.org/wiki/Strona&#32;główna&#35;&#35;&#x23;To_nie_jest nagłówek?action=edit&section=2#Nagłówek strony"; </syntaxhighlight> == {{Code|p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)}} == Funkcja domyślnie koduje adres bezprotokolarny, a z podaniem drugiej wartości {{Code|true}} protokolarny. Funkcja wykorzystuje funkcję {{Code|{{sr|#p.ZamianaEncodeNaPodstawieWzoruTekstu(tekst,wzor)|p=Html}}}}. A jeżeli druga wartość odpowiada prawdziwości, to korzystamy z {{Code|{{sr|#p["UrlBezProtokołu"](frame)|p=Html}}}} na rozkład na adres bezprotokolarny i protokół. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,protokolarny)...end; </syntaxhighlight> Parametry: * {{Code|adres}} - adres do zakodowania, * {{Code|protokolarny}} - czy ma rozkładać adres na nazwę strony i protokół. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres11="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres12=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres11,true); -- Adres bezprotokonalny; local adres21="//pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; local adres22=html_modul.AdresDomniemanieBezProtokolarnyEncodeURL(adres21,false); </syntaxhighlight> Wynik wartości {{Code|adres12}} i {{Code|adres12}} jest: <syntaxhighlight lang="lua"> -- Zakodowany adres z protokołem local adres12="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; -- Zakodowany adres bez protokołu local adres22="//pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.UriEncode(frame)}} == Funkcja do kodowania adresów tylko z protokołem, wartości bez protokołu nie obsługuje. Wykorzystuje {{Code|{{sr|#p.AdresDomniemanieBezProtokolarnyEncodeURL(adres,...)|p=Html}}}}. Do wyszukiwania adresów jest brana funkcja {{Code|{{sr|#p.PobierzParametr(frame,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.UriEncode(frame)...end; </syntaxhighlight> Parametry tablicy ramki tablicy transportu: * {{Code|html}} - adres z protokołem strony. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); -- Adres protokonalny; local adres="https://pl.wikibooks.org/wiki/Strona_główna?action=edit&section=2#Nagłówek strony"; -- Równoważnie: local adres2=html_modul.UriEncode{html=adres,}; local adres2=html_modul.UriEncode(adres); </syntaxhighlight> Wynik jest w zmiennej: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_g%C5%82%C3%B3wna?action=edit&section=2#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> == {{Code|p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)}} == Funkcja blokuje odkodowywanie możliwych kodów {{Strong|HTML}} znaku {{Code|<nowiki>#</nowiki>}}, w tym celu wywoływana jest funkcja: {{Code|{{sr|#p.KodowanieOmijanieFunkcyjne(html,...)|p=Html}}}}, do omijania tego znaku, funkcja omija tylko znaki zapisane w kodach {{Strong|HTML}}, tzn. {{Code|{{Nowiki|&#35}}}}, w tym celu wszystkie kody tego znaku zamieniamy na jeden, przed wywołaniem tej funkcji, funkcjami: {{Code|{{sr|#p.EncodeHashKoduHtmlTekstu(tekst)|p=Html}}}} i {{Code|{{sr|#p.DecodeHashKoduHtmlTekstu(tekst,ile)|p=Html}}}}. Ta funkcja w pierwszym kroku, w nim we wspomnianej funkcji wywołanej w funkcji anonimowej, wywołuje funkcję dekodujące znaki, czyli: {{Code|{{sr|#p.DecodeKoduHTMLZnaku(tekst)|p=Html}}}}, do odkodowania kodów, {{Strong|HTML}}, dziesiętnych, szesnastkowych i literowych. Na samym końcu kodowane są specjalne znaki na podstawie: {{Code|{{sr|#p.EncodeSpecjalneZnakiHtml(frame,...)|p=Html}}}}, na kody {{Strong|HTML}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - funkcja do podstawowego kodowania adresu. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="Szablon:Link_wewnętrzny?action=edit#Obsługa?"; local adres2=html_modul.EncodePodstawoweHtmlTekstu(adres); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="Szablon:Link_wewnętrzny&#63;action&#61;edit&#35;Obsługa&#63;"; </syntaxhighlight> == {{Code|p.EncodeElementyAdresuStrony(elementy_adresu_strony,...)}} == Gdy mamy problem (przypadek) z parametrami adresu strony,wtedy do kodowania wywoływana jest funkcja {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}, a gdy posługujemy się właściwym adresem strony lub nagłówkiem, wtedy dekodujemy '''URL''' funkcją {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, następnie {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}, i jeżeli mały włączone kodowanie, następnie {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.EncodeElementyAdresuStrony(elementy_adresu_strony,czy_parametry_strony,z_kodowaniem)...end; </syntaxhighlight> Parametry: * {{Code|elementy_adresu_strony}} - element adresu strony, * {{Code|czy_parametry_strony}} - czy parametry strony rozważać, jako że wtedy jest taki adres jako parametry, * {{Code|z_kodowaniem}} - czy jest włączone kodowanie funkcji po odkodowaniu i pewnych operacjach w tej funkcji. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local elementy_adresu_strony="Obsługa?"; local elementy_adresu_strony2=html_modul.EncodeElementyAdresuStrony(elementy_adresu_strony,false,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local elementy_adresu_strony2="Obs%C5%82uga%26%2363%3B"; </syntaxhighlight> == {{Code|p.AdresProjektuEncodeHtml(frame,...)}} == Funkcja korzysta do dekodowania na samym początku '''URL''' {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.decode|n=mw.uri.decode}}}}, a na końcu {{Code|{{lz|s=https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/pl|g=mw.uri.encode|n=mw.uri.encode}}}}, jeżeli jest włączone kodowanie, między czasie korzysta z {{Code|{{sr|#p.EncodePodstawoweHtmlTekstu(elementy_adresu_strony)|p=Html}}}}. Główny elementem funkcyjnym jest {{Code|{{sr|#p.EncodeZaawansowanyParametryHtml(adres,...)|p=Html}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> function p.AdresProjektuEncodeHtml(frame,z_kodowaniem,protokolarny)...end; </syntaxhighlight> Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|z_kodowaniem}} - czy końcowo kodować, * {{Code|protokolarny}} - czy uważać przy kodowaniu na protokoły pełnych adresów stron. Parametry tablicy ramki tabeli transportu: * {{Code|html}} - adres do kodowania, * {{Code|encode}} - czy kodować. Jeżeli zawartością jednego parametru funkcji nie jest ramka, tylko inny parametr, który jest tekstem, wtedy to jest ten sam parametr, co {{Code|html}}. Przykłady: <syntaxhighlight lang="lua"> local html_modul=require("Module:Html"); local adres="https://pl.wikibooks.org/wiki/Strona_&główna?&?action=edit&section=2&title=Nazwa strony szablonu: {{!}}#Nagłówek strony"; local adres2=html_modul.AdresProjektuEncodeHtml(adres,false,true); local adres3=html_modul.AdresProjektuEncodeHtml(adres,true,true); </syntaxhighlight> Wartość zmiennej jest ukryta pod: <syntaxhighlight lang="lua"> local adres2="https://pl.wikibooks.org/wiki/Strona_&#38;główna&#63;&#38;?action=edit&section=2&title=Nazwa strony szablonu: &#123;&#123;!&#125;&#125;#Nagłówek strony"; local adres3="https://pl.wikibooks.org/wiki/Strona_%26%2338%3Bg%C5%82%C3%B3wna%26%2363%3B%26%2338%3B?action=edit&section=2&title=Nazwa%20strony%20szablonu%3A%20%26%23123%3B%26%23123%3B%21%26%23125%3B%26%23125%3B#Nag%C5%82%C3%B3wek%20strony"; </syntaxhighlight> {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> onq4stes3lb3wmg6dbjrpkujz0ih3wm Wikibooks:Moduły/Pudełko 4 63486 541054 540947 2026-04-27T19:24:50Z Persino 2851 541054 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są używane tylko w szablonie rodzica ramki dziecka w funkcjach wywołaniach modułowych {{Code|{{m|Pudełko}}}}. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jaka jest ich ważność, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 1oth3jnmuj365083kbx6gjwtqt06zc4 541055 541054 2026-04-27T19:34:57Z Persino 2851 541055 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są używane tylko w szablonie rodzica ramki dziecka w funkcjach wywołaniach modułowych {{Code|{{m|Pudełko}}}}. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Te parametry przestrzenne podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ccd10ggsobeg38t649h19kyrf0kkiyx 541056 541055 2026-04-27T19:35:48Z Persino 2851 /* Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka */ 541056 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są używane tylko w szablonie rodzica ramki dziecka w funkcjach wywołaniach modułowych {{Code|{{m|Pudełko}}}}. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametrem numerowany, {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4tt5f3jiuwp3r7bj15wnqr2ok9174fu 541057 541056 2026-04-27T19:37:38Z Persino 2851 /* Zestawienie: */ 541057 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) mogą zostać użyte jako parametry szablonu. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są używane tylko w szablonie rodzica ramki dziecka w funkcjach wywołaniach modułowych {{Code|{{m|Pudełko}}}}. Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> exzjyjaaazeax5akx5oqraqmtwr0lly 541058 541057 2026-04-27T19:56:51Z Persino 2851 /* Opis podstawowy parametrów pudełek */ 541058 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na pidstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są tpo parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8lccv93nmgg6n4irl6g0wzqj0pztulk 541059 541058 2026-04-27T19:58:54Z Persino 2851 /* Parametry bazowe i numerkowe */ 541059 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na pidstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są tpo parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> kdfh4c61kgjhox7bel3poq463dxp05l 541060 541059 2026-04-27T20:00:15Z Persino 2851 /* Opis podstawowy parametrów pudełek */ 541060 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na pidstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są tpo parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> jydrrcb0ud6hgazj27fz9v13s05dkgv 541061 541060 2026-04-27T20:01:27Z Persino 2851 /* Opis podstawowy parametrów pudełek */ 541061 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na pidstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są tpo parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> md9vo7zbi2b9do1qok8c7d1l5qcv5kz 541062 541061 2026-04-27T20:08:04Z Persino 2851 /* Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw */ 541062 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na pidstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są tpo parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> lhfrr9n1r71nbrh0nly2p114zneguo0 541063 541062 2026-04-27T20:10:08Z Persino 2851 /* Opis podstawowy parametrów pudełek */ 541063 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na pidstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są tpo parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> e0tksoh82tz22qm2a8qsfqqcwqtj21a 541064 541063 2026-04-27T20:10:45Z Persino 2851 /* Opis podstawowy parametrów pudełek */ 541064 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są tpo parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> jxf7pzmgcxk8ge0rucqu4azj5uulv3y 541065 541064 2026-04-27T20:11:33Z Persino 2851 /* Opis podstawowy parametrów pudełek */ 541065 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> hf7b5r6w5bq8n4p2m4bwf31slnuwbuy 541066 541065 2026-04-27T20:13:27Z Persino 2851 /* Parametry pudełkowe */ 541066 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} == == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> helfgchls5vgibhai94ua26rpvqftig 541067 541066 2026-04-27T20:23:10Z Persino 2851 /* Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} */ 541067 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> -- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: <syntaxhighlight lang="mediawiki"> -- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> mf6rmi4cwmz82840eidp1vyo04famjd 541069 541067 2026-04-27T20:26:17Z Persino 2851 /* Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} */ 541069 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> -- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: <syntaxhighlight lang="mediawiki"> -- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 14e3okvrnonyijfbxa65q985qcenj9t 541070 541069 2026-04-27T20:26:46Z Persino 2851 /* Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} */ 541070 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> -- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: <syntaxhighlight lang="mediawiki"> -- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> pjszcu8gg0p21nxk4d2t2jpjv3ozzv4 541071 541070 2026-04-27T20:29:20Z Persino 2851 /* Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} */ 541071 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> -- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: <syntaxhighlight lang="mediawiki"> -- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4ildygljo639vkoqnole6qsxja0m9gl 541072 541071 2026-04-27T20:33:35Z Persino 2851 /* Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} */ 541072 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> -- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowazniemożemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> -- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> lkyh3phmx1o31ds9ga1i4fqv7ghuhqv 541073 541072 2026-04-27T20:34:13Z Persino 2851 /* Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} */ 541073 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> -- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> -- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 9fogxxwbsn8fbmwcy1ehgrs8iytin7e 541074 541073 2026-04-27T20:34:54Z Persino 2851 /* Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} */ 541074 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> -- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4qmjglle2114262r8lzbv705f6rqqyz 541075 541074 2026-04-27T20:35:51Z Persino 2851 /* Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek {{Code|{{m|Pudełko}}}} */ 541075 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> -- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 3wu7freib5whegt3ccdaegzfucn3wwe 541076 541075 2026-04-27T20:36:39Z Persino 2851 /* Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} */ 541076 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Funkcje pudełkowe w wersji podstawowej === === Funkcje pudełkowe w wersji drugiej === === Funkcje pudełkowe w wersji trzeciej === == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 26xh7jq08jkcl3egzx95baoaqi6n8r8 541077 541076 2026-04-27T20:38:29Z Persino 2851 /* Parametry pudełkowe */ 541077 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Parametry ramki dziecka lub szablonu rodzica === ==== Funkcje pudełkowe w wersji podstawowe= === ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> rsa5u13v2jvs0392izzi9sd3t8pypzf 541078 541077 2026-04-27T20:38:48Z Persino 2851 /* = Funkcje pudełkowe w wersji podstawowe= */ 541078 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Parametry ramki dziecka lub szablonu rodzica === ==== Funkcje pudełkowe w wersji podstawowe ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> fr0kzjef3vxigv9aykbhkv2zwzeuizh 541079 541078 2026-04-27T20:39:10Z Persino 2851 /* Funkcje pudełkowe w wersji podstawowe */ 541079 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Parametry ramki dziecka lub szablonu rodzica === ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> biklba9kuo17llc4qjt083ng7f954ea 541080 541079 2026-04-27T20:46:00Z Persino 2851 /* Wprowadzenie */ 541080 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typjednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamienianyna przedmiotową) i dyskusji (typ jednostki jest zamienianyna dyskusji), niezależnie, czy to obrtazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Parametry ramki dziecka lub szablonu rodzica === ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> qnq7llkvkjttgfi9189qrfbfp780jqi 541081 541080 2026-04-27T20:46:48Z Persino 2851 /* Wprowadzenie */ 541081 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamienianyna przedmiotową) i dyskusji (typ jednostki jest zamienianyna dyskusji), niezależnie, czy to obrtazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Parametry ramki dziecka lub szablonu rodzica === ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> puw3rkzcm0jyndf425xgl010vtxkjoz 541082 541081 2026-04-27T20:47:44Z Persino 2851 /* Wprowadzenie */ 541082 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrtazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Parametry ramki dziecka lub szablonu rodzica === ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> fhk1g9x0bijrmmrxt1cs8cz2i2sbdiw 541083 541082 2026-04-27T20:48:14Z Persino 2851 /* Wprowadzenie */ 541083 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Parametry ramki dziecka lub szablonu rodzica === ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis typu jednostek oraz cech i błędów pudełka, normalnych, przedmiotowych i dyskusji. Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> kq3m1q6aihnpct3wc92me6eoy2e1c2k 541084 541083 2026-04-27T20:50:37Z Persino 2851 /* Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} */ 541084 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Parametry ramki dziecka lub szablonu rodzica === ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom III|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 704ral94d44ihfnd5endd4173s6c29a 541085 541084 2026-04-27T20:51:01Z Persino 2851 /* Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} */ 541085 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Parametry ramki dziecka lub szablonu rodzica === ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 1xsjaup2bwckhtv76hys45bfrqlgq8i 541088 541085 2026-04-27T20:55:24Z Persino 2851 /* Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} */ 541088 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Parametry ramki dziecka lub szablonu rodzica === ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> fym8bo5n8bjcsqcbku2cd5uyl77pu2i 541094 541088 2026-04-27T22:10:04Z Persino 2851 /* Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} */ 541094 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Parametry ramki dziecka lub szablonu rodzica === ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> dkkxhtxzqpxvach0ryh25ccl9estnwh 541095 541094 2026-04-27T22:16:12Z Persino 2851 /* Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} */ 541095 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. === Parametry ramki dziecka lub szablonu rodzica === ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ms06gecoto3k6840bqsy6mqd68661ed 541140 541095 2026-04-28T07:07:18Z Persino 2851 /* Parametry pudełkowe */ 541140 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazwmożna podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wwersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw wychodząc wyłącznie od zmiennych przestrzennychi typów jednostek, więcona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ścigają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowychi przestrzennych. ==== Parametry ramki dziecka w szablonia rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4vbbj4lhvm87tirhtn9o3oq5us9m14a 541141 541140 2026-04-28T07:07:59Z Persino 2851 /* Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry */ 541141 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazwmożna podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wwersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw wychodząc wyłącznie od zmiennych przestrzennychi typów jednostek, więcona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ścigają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowychi przestrzennych. ==== Parametry ramki dziecka w szablonia rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 5xa5k6jhoexks69j1rqz1ios68evksf 541142 541141 2026-04-28T07:09:49Z Persino 2851 /* Parametry ramki i szablonu */ 541142 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazwmożna podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wwersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw wychodząc wyłącznie od zmiennych przestrzennychi typów jednostek, więcona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ścigają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowychi przestrzennych. ==== Parametry ramki dziecka w szablonia rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji,a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czynazwy jednostki, a nawet typu jednostki,czy dyskusji typów jednostki. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> as6cq2wad51rutx6754wa5jplvkh1e2 541143 541142 2026-04-28T07:10:33Z Persino 2851 /* Parametry ramki dziecka w szablonia rodzica */ 541143 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazwmożna podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wwersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw wychodząc wyłącznie od zmiennych przestrzennychi typów jednostek, więcona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ścigają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowychi przestrzennych. ==== Parametry ramki dziecka w szablonia rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 7pyl2y8d1x4ydeerxfw68l7wgi0vjv6 541144 541143 2026-04-28T07:16:32Z Persino 2851 /* Parametry ramki dziecka w szablonia rodzica */ 541144 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}. * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazwmożna podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wwersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw wychodząc wyłącznie od zmiennych przestrzennychi typów jednostek, więcona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ścigają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowychi przestrzennych. ==== Parametry ramki dziecka w szablonia rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1]], dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw,jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nwet taka przesstrzeńmoże nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykładz numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}tak}}}}. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 5k64h2xiezz40izho1jwj7mv0e3g5je 541145 541144 2026-04-28T07:17:47Z Persino 2851 /* Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry */ 541145 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazwmożna podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wwersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw wychodząc wyłącznie od zmiennych przestrzennychi typów jednostek, więcona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ścigają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowychi przestrzennych. ==== Parametry ramki dziecka w szablonia rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1]], dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw,jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nwet taka przesstrzeńmoże nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykładz numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}tak}}}}. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> c0qqesv83qlb6k62n1hkca3b3owagja 541146 541145 2026-04-28T07:18:12Z Persino 2851 /* Funkcje nazw przestrzeni nazw i typów jednostek, w wwersji podstawowej */ 541146 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazwmożna podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw wychodząc wyłącznie od zmiennych przestrzennychi typów jednostek, więcona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ścigają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowychi przestrzennych. ==== Parametry ramki dziecka w szablonia rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1]], dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw,jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nwet taka przesstrzeńmoże nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykładz numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}tak}}}}. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ksjqi1d3v5g7ppe1qu3bc8lyofdh3ma 541147 541146 2026-04-28T07:22:36Z Persino 2851 /* Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka */ 541147 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. === Liczenie nazw przestrzeni nazw z parametrów przestrzennych i typów jednostek z parametrem dyskusja typu jednostek === Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są typy jednostki na podstawie aktualnego modułu. === Notatka dla funkcji pudełkowych === Parametry pudełek nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazwmożna podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw wychodząc wyłącznie od zmiennych przestrzennychi typów jednostek, więcona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ścigają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowychi przestrzennych. ==== Parametry ramki dziecka w szablonia rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1]], dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw,jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nwet taka przesstrzeńmoże nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykładz numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}tak}}}}. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> rrj9n2qjxspcw266acrienuezc7ewys 541148 541147 2026-04-28T07:25:02Z Persino 2851 /* Parametry ramki i szablonu */ 541148 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. === Liczenie nazw przestrzeni nazw z parametrów przestrzennych i typów jednostek z parametrem dyskusja typu jednostek === Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są typy jednostki na podstawie aktualnego modułu. === Notatka dla funkcji pudełkowych === Parametry pudełek nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. * Dla przykładu w opisach funkcji parametry będziemy podaawać nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry różnych funkcji pudełkowych nazw przesstrzeni nazw, nazw jednostek, pełnych nazw jednostek i typów jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak jest podawane w opisach tych funkcji w następnych tomach, że tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazwmożna podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw wychodząc wyłącznie od zmiennych przestrzennychi typów jednostek, więcona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ścigają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowychi przestrzennych. ==== Parametry ramki dziecka w szablonia rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1]], dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw,jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nwet taka przesstrzeńmoże nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykładz numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}tak}}}}. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> nbndg1yswqia3lyr6ovm6ariwgi7kt9 541149 541148 2026-04-28T07:25:31Z Persino 2851 /* Parametry rodzica ramki dziecka */ 541149 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. === Liczenie nazw przestrzeni nazw z parametrów przestrzennych i typów jednostek z parametrem dyskusja typu jednostek === Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są typy jednostki na podstawie aktualnego modułu. === Notatka dla funkcji pudełkowych === Parametry pudełek nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. * Dla przykładu w opisach funkcji parametry będziemy podaawać nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry różnych funkcji pudełkowych nazw przesstrzeni nazw, nazw jednostek, pełnych nazw jednostek i typów jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak jest podawane w opisach tych funkcji w następnych tomach, że tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazw można podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw wychodząc wyłącznie od zmiennych przestrzennychi typów jednostek, więcona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ścigają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowychi przestrzennych. ==== Parametry ramki dziecka w szablonia rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1]], dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw,jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nwet taka przesstrzeńmoże nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykładz numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}tak}}}}. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> gz0zqf73e3d3fchf7laqziznzm66pze 541150 541149 2026-04-28T07:26:09Z Persino 2851 /* Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej */ 541150 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. === Liczenie nazw przestrzeni nazw z parametrów przestrzennych i typów jednostek z parametrem dyskusja typu jednostek === Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są typy jednostki na podstawie aktualnego modułu. === Notatka dla funkcji pudełkowych === Parametry pudełek nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. * Dla przykładu w opisach funkcji parametry będziemy podaawać nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry różnych funkcji pudełkowych nazw przesstrzeni nazw, nazw jednostek, pełnych nazw jednostek i typów jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak jest podawane w opisach tych funkcji w następnych tomach, że tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazw można podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw, wychodząc wyłącznie od zmiennych przestrzennych i typów jednostek, więc ona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ścigają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowychi przestrzennych. ==== Parametry ramki dziecka w szablonia rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1]], dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw,jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nwet taka przesstrzeńmoże nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykładz numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}tak}}}}. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> ez1vykpejop28w1ohjkh6ew2hirdpeg 541151 541150 2026-04-28T07:28:24Z Persino 2851 /* Parametry pudełkowe */ 541151 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. === Liczenie nazw przestrzeni nazw z parametrów przestrzennych i typów jednostek z parametrem dyskusja typu jednostek === Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są typy jednostki na podstawie aktualnego modułu. === Notatka dla funkcji pudełkowych === Parametry pudełek nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. * Dla przykładu w opisach funkcji parametry będziemy podaawać nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry różnych funkcji pudełkowych nazw przesstrzeni nazw, nazw jednostek, pełnych nazw jednostek i typów jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak jest podawane w opisach tych funkcji w następnych tomach, że tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazw można podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw, wychodząc wyłącznie od zmiennych przestrzennych i typów jednostek, więc ona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry nazw jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ściągają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowych i przestrzennych. ==== Parametry ramki dziecka w szablonia rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1}}, dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw,jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nwet taka przesstrzeńmoże nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykład z numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}tak}}}}. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 5958h9tknwtf0usj3hbisacxlr5h4wk 541152 541151 2026-04-28T07:29:16Z Persino 2851 /* Parametry ramki dziecka w szablonia rodzica */ 541152 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. === Liczenie nazw przestrzeni nazw z parametrów przestrzennych i typów jednostek z parametrem dyskusja typu jednostek === Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są typy jednostki na podstawie aktualnego modułu. === Notatka dla funkcji pudełkowych === Parametry pudełek nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. * Dla przykładu w opisach funkcji parametry będziemy podaawać nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry różnych funkcji pudełkowych nazw przesstrzeni nazw, nazw jednostek, pełnych nazw jednostek i typów jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak jest podawane w opisach tych funkcji w następnych tomach, że tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazw można podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw, wychodząc wyłącznie od zmiennych przestrzennych i typów jednostek, więc ona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry nazw jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ściągają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowych i przestrzennych. ==== Parametry ramki dziecka w szablonia rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1}}, dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw,jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nwet taka przesstrzeńmoże nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykład z numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}2}}}}. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> f25w2tsoydp0vhipcw04tgka8g86i22 541153 541152 2026-04-28T07:30:20Z Persino 2851 /* Parametry ramki dziecka w szablonia rodzica */ 541153 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. === Liczenie nazw przestrzeni nazw z parametrów przestrzennych i typów jednostek z parametrem dyskusja typu jednostek === Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są typy jednostki na podstawie aktualnego modułu. === Notatka dla funkcji pudełkowych === Parametry pudełek nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. * Dla przykładu w opisach funkcji parametry będziemy podaawać nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry różnych funkcji pudełkowych nazw przesstrzeni nazw, nazw jednostek, pełnych nazw jednostek i typów jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak jest podawane w opisach tych funkcji w następnych tomach, że tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazw można podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw, wychodząc wyłącznie od zmiennych przestrzennych i typów jednostek, więc ona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry nazw jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ściągają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowych i przestrzennych. ==== Parametry ramki dziecka w szablonie rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1}}, dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw,jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nwet taka przesstrzeńmoże nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykład z numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}2}}}}. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> fe87sql9vhffezllmdbbjm8dntt51kq 541154 541153 2026-04-28T07:33:21Z Persino 2851 /* Parametry ramki i szablonu */ 541154 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. === Liczenie nazw przestrzeni nazw z parametrów przestrzennych i typów jednostek z parametrem dyskusja typu jednostek === Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są typy jednostki na podstawie aktualnego modułu. === Notatka dla funkcji pudełkowych === Parametry pudełek nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. * Dla przykładu w opisach funkcji parametry będziemy podawać nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry różnych funkcji pudełkowych nazw przesstrzeni nazw, nazw jednostek, pełnych nazw jednostek i typów jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak jest podawane w opisach tych funkcji w następnych tomach, że tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazw można podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw, wychodząc wyłącznie od zmiennych przestrzennych i typów jednostek, więc ona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry nazw jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ściągają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowych i przestrzennych. ==== Parametry ramki dziecka w szablonie rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1}}, dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw,jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nwet taka przesstrzeńmoże nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykład z numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}2}}}}. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 0wo452jrvflteao2toandpjukwh4bmh 541155 541154 2026-04-28T07:33:49Z Persino 2851 /* Parametry ramki dziecka w szablonie rodzica */ 541155 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. === Liczenie nazw przestrzeni nazw z parametrów przestrzennych i typów jednostek z parametrem dyskusja typu jednostek === Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są typy jednostki na podstawie aktualnego modułu. === Notatka dla funkcji pudełkowych === Parametry pudełek nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. * Dla przykładu w opisach funkcji parametry będziemy podawać nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry różnych funkcji pudełkowych nazw przesstrzeni nazw, nazw jednostek, pełnych nazw jednostek i typów jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak jest podawane w opisach tych funkcji w następnych tomach, że tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazw można podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw, wychodząc wyłącznie od zmiennych przestrzennych i typów jednostek, więc ona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry nazw jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ściągają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowych i przestrzennych. ==== Parametry ramki dziecka w szablonie rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1}}, dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw, jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nwet taka przesstrzeńmoże nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykład z numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}2}}}}. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> jg0yc0vpuqgpzxqorkl03uiwhn78901 541156 541155 2026-04-28T07:34:14Z Persino 2851 /* Parametry ramki dziecka w szablonie rodzica */ 541156 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. === Liczenie nazw przestrzeni nazw z parametrów przestrzennych i typów jednostek z parametrem dyskusja typu jednostek === Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są typy jednostki na podstawie aktualnego modułu. === Notatka dla funkcji pudełkowych === Parametry pudełek nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. * Dla przykładu w opisach funkcji parametry będziemy podawać nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry różnych funkcji pudełkowych nazw przesstrzeni nazw, nazw jednostek, pełnych nazw jednostek i typów jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak jest podawane w opisach tych funkcji w następnych tomach, że tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazw można podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw, wychodząc wyłącznie od zmiennych przestrzennych i typów jednostek, więc ona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry nazw jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ściągają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowych i przestrzennych. ==== Parametry ramki dziecka w szablonie rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1}}, dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw, jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nawet taka przesstrzeńmoże nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykład z numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}2}}}}. ==== Funkcje pudełkowe w wersji podstawowej ==== ==== Funkcje pudełkowe w wersji drugiej ==== ==== Funkcje pudełkowe w wersji trzeciej ==== == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> trd80h9s8dch3pv4hj9e9bwprufudpc 541157 541156 2026-04-28T07:41:50Z Persino 2851 /* Parametry pudełkowe */ 541157 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. === Liczenie nazw przestrzeni nazw z parametrów przestrzennych i typów jednostek z parametrem dyskusja typu jednostek === Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są typy jednostki na podstawie aktualnego modułu. === Notatka dla funkcji pudełkowych === Parametry pudełek nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. * Dla przykładu w opisach funkcji parametry będziemy podawać nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry różnych funkcji pudełkowych nazw przesstrzeni nazw, nazw jednostek, pełnych nazw jednostek i typów jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak jest podawane w opisach tych funkcji w następnych tomach, że tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazw można podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw, wychodząc wyłącznie od zmiennych przestrzennych i typów jednostek, więc ona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry nazw jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ściągają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowych i przestrzennych. ==== Parametry ramki dziecka w szablonie rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1}}, dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw, jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nawet taka przesstrzeńmoże nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykład z numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}2}}}}. ==== Funkcje pudełkowe bezpośrednie ==== * Funkcje licza bezpośrednio nazwę przestrzeni nazw bez transformacji na przedmiotową lub dyskusji, jest ona liczona z parametrów przestrzennych lub ewentualnie z nazwy jednostek, jeżeli odpowiednie parametry przestrzenne mają ściśle określone wartości. * Funkcje pełnych nazw jeddnostek wykorzystują funkcje, liczace nazwę przestrzeni nazw do liczenia nazwy przestrzeni nazw plus z nazwą jednostki tworzą pełny adres strony. ==== Funkcje pudełkowe przedmiotowe ==== Te parametry liczone przez te funkcje, w nich elementy przestrzenne są zamieniane na wartości przedmiotowe, tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej. ==== Funkcje pudełkowe dyskusji ==== Te parametry liczone przez te funkcje, w nich elementy przestrzenne są zamieniane na wartości przedmiotowe, tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą. == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4wnf10i1nj4mtsnpadof2lkvc27upj7 541158 541157 2026-04-28T07:45:47Z Persino 2851 /* Parametry ramki dziecka w szablonie rodzica */ 541158 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. === Liczenie nazw przestrzeni nazw z parametrów przestrzennych i typów jednostek z parametrem dyskusja typu jednostek === Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są typy jednostki na podstawie aktualnego modułu. === Notatka dla funkcji pudełkowych === Parametry pudełek nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. * Dla przykładu w opisach funkcji parametry będziemy podawać nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry różnych funkcji pudełkowych nazw przesstrzeni nazw, nazw jednostek, pełnych nazw jednostek i typów jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak jest podawane w opisach tych funkcji w następnych tomach, że tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazw można podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw, wychodząc wyłącznie od zmiennych przestrzennych i typów jednostek, więc ona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry nazw jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ściągają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowych i przestrzennych. ==== Parametry ramki dziecka w szablonie rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1}}, dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw, jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nawet taka przesstrzeń może nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykład z numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}2}}}}. * Też parametr dziecka pierwszy może mieć nieprawidłową nazwę, wtedy funkcja zrzuca stan błędu w postaci komunikatu {{Code|(błąd)}}. ==== Funkcje pudełkowe bezpośrednie ==== * Funkcje licza bezpośrednio nazwę przestrzeni nazw bez transformacji na przedmiotową lub dyskusji, jest ona liczona z parametrów przestrzennych lub ewentualnie z nazwy jednostek, jeżeli odpowiednie parametry przestrzenne mają ściśle określone wartości. * Funkcje pełnych nazw jeddnostek wykorzystują funkcje, liczace nazwę przestrzeni nazw do liczenia nazwy przestrzeni nazw plus z nazwą jednostki tworzą pełny adres strony. ==== Funkcje pudełkowe przedmiotowe ==== Te parametry liczone przez te funkcje, w nich elementy przestrzenne są zamieniane na wartości przedmiotowe, tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej. ==== Funkcje pudełkowe dyskusji ==== Te parametry liczone przez te funkcje, w nich elementy przestrzenne są zamieniane na wartości przedmiotowe, tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą. == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4inmlht8886cnhbphodl7mkg3fddh1r 541159 541158 2026-04-28T07:46:50Z Persino 2851 /* Parametry ramki dziecka w szablonie rodzica */ 541159 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. === Liczenie nazw przestrzeni nazw z parametrów przestrzennych i typów jednostek z parametrem dyskusja typu jednostek === Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są typy jednostki na podstawie aktualnego modułu. === Notatka dla funkcji pudełkowych === Parametry pudełek nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. * Dla przykładu w opisach funkcji parametry będziemy podawać nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry różnych funkcji pudełkowych nazw przesstrzeni nazw, nazw jednostek, pełnych nazw jednostek i typów jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak jest podawane w opisach tych funkcji w następnych tomach, że tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazw można podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw, wychodząc wyłącznie od zmiennych przestrzennych i typów jednostek, więc ona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry nazw jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ściągają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji tzreciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowych i przestrzennych. ==== Parametry ramki dziecka w szablonie rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1}}, dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw, jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nawet taka przesstrzeń może nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykład z numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}2}}}}. * Też parametr dziecka pierwszy może mieć nieprawidłową nazwę, wtedy funkcja zrzuca stan błędu w postaci komunikatu {{Code|(błąd)}} w przypadku liczenia nazwy przestzreni nazw w pewnych funkcjach pudełkowych. ==== Funkcje pudełkowe bezpośrednie ==== * Funkcje licza bezpośrednio nazwę przestrzeni nazw bez transformacji na przedmiotową lub dyskusji, jest ona liczona z parametrów przestrzennych lub ewentualnie z nazwy jednostek, jeżeli odpowiednie parametry przestrzenne mają ściśle określone wartości. * Funkcje pełnych nazw jeddnostek wykorzystują funkcje, liczace nazwę przestrzeni nazw do liczenia nazwy przestrzeni nazw plus z nazwą jednostki tworzą pełny adres strony. ==== Funkcje pudełkowe przedmiotowe ==== Te parametry liczone przez te funkcje, w nich elementy przestrzenne są zamieniane na wartości przedmiotowe, tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej. ==== Funkcje pudełkowe dyskusji ==== Te parametry liczone przez te funkcje, w nich elementy przestrzenne są zamieniane na wartości przedmiotowe, tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą. == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> h2pfy0yuv5rl0h2mw77e7n8dxdmo9k0 541160 541159 2026-04-28T07:50:37Z Persino 2851 /* Funkcje nazw jednostek w wersji tzreciej */ 541160 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|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 pudelko_modul=require("Module:Pudełko"); </syntaxhighlight> dzięki, któremu można wypisywać funkcje należącego do niego. == Opis podstawowy parametrów pudełek == Do tego rozdziału potrzebne są wiadomości z: * {{sr|#Parametry bazowe i numerkowe|p=Pudełko}}, * {{sr|#Tworzenie typów jednostek dyskusji i rodzina parametrów dyskusja typu jednostki|p=Pudełko}}, * {{sr|#Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw|p=Pudełko}}, * {{sr|#Parametry dodatkowe typów jednostek|p=Pudełko}}. Moduł {{Code|{{ld2|Pudełko}}}} przedstawia funkcje nazw w oparciu o funkcje nazw {{Code|{{ld2|Nazwy}}}}, generuje on nazwy za pomocą parametrów pudełkowych podanych poniżej. Te funkcje liczą na podstawie zmiennych: : Posługuje się na parametrach pudełkowych {{Parametr|nazwa przestrzeni nazw}} (czy też bez numerka {{Parametr|nazwa przestrzeni nazw i}} dla tego numerowanego) lub te z numerkiem po jednej spacji w nich (ale nie dla tego z końcówką {{Code| i}}) są to parametry nazw przestrzeni nazw dla różnych numerków lub bez numerka. : Parametr {{Parametr|nazwa jednostki}} (lub parametr {{Parametr|cel}} dla numerka tego pierwszego, tego alternatywnego), lub te z numerkiem po jednej spacji w nazwie parametru, albo numerowane numerkami {{Code|1}}, {{Code|2}},..., mogą zostać użyte jako parametry szablonu. Te parametry nienazwane i {{Code|cel}} {{=}} {{Code|1}}, są to parametry nazw jednostek, bez przestrzeni nazw, ale nie zawsze, bo jak czasami przestrzeń nazw jest pusta (bo wskazuje na przestrzeń główną lub ewentualnie jest „Dyskusja” przy funkcjach przedmiotowych pudełek), wtedy liczy się nazwa przestrzeni nazw z nazwy jednostek. Wtedy nazwa przestrzeni nazw jest z tego liczona, a nazwa jednostki po usunięciu przestrzeni nazw z niego. : Parametry określające rodzaj jednostki {{Parametr|typ jednostki}} z {{Parametr|dyskusja typu jednostki}}, i nie tylko, itp. w wersjach z numerkiem po jednej spacji w nich mogą zostać użyte jako parametry szablonu. Też jest ich wersja z {{Code|i}} po spacji w tych parametrach podstawowych. Ten parametr wskazuje na odpowiednią przestrzeń policzaną bezpośrednio z niego, lub jest przedstawiana w postaci też przedmiotowej lub dyskusji przy funkcjach tego dotyczących. Ten parametr obrazuje przestrzenie nazw przedmiotowe lub dyskusji, a jeżeli mamy typ jednostki przedmiotowy, wskazujący na porzestrzeń przedmiotową, z wartoscią niepustą dyskusji typu jednostek, wtedy to, jako całość, wskazujena orzestrzeń dyskusji, w przeciwnym wypadku,nie zawsze tak jest. : A te tymi numerowanymi liczbami naturalnymi {{Tt|nazwy jednostki}} od jedynki wzwyż poprzez szablon, w którym są one użyte, one też mogą być użyte z dwukropkiem, te numerowane, na samym początku nazwy, wtedy one są traktowane jako pełne nazwy strony, i wtedy one nie zostaną z interpretowane, że do nich trzeba użyć parametr odpowiedni z nazwą przetrzeni nazw z tego numerowanego, czy ogólny, aby utworzyć znów inną pełną nazwę strony dla tego numerka,tak jest przy wersjach funkcji pudełkowych w wersjach dwa i trzy, a dla wersji dwa, również to dotyczy parametrów bazowych. === Zestawienie: === * {{Code|nazwa przestrzeni nazw}} i {{Code|nazwa przestrzeni nazw i}} (ogólna nazwa przestrzeni nazw dla wszystkich numerków, i tych numerowanych jednostek) - i to pierwsze z numerkiem, tzn. {{Code|nazwa przestrzeni nazw 1}}, {{Code|nazwa przestrzeni nazw 2}}, ..., * {{Code|nazwa jednostki}} - i te z numerkiem: {{Code|nazwa jednostki 1}}, {{Code|nazwa jednostki 2}}, ..., lub gdy jest zamiast tego parametry numerowane, podawane tylko w ramce szablonu rodzica, w postaci zmiennych nienazwanych: {{Code|1}}, {{Code|2}},..., który dla tego pierwszego może być uznany jako: {{Code|cel}} {{=}} {{Code|1}}, który też nie może być podany w ramce dziecka. * {{Code|typ jednostki}} (parametr bazowy) i {{Code|typ jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|typ jednostki 1}}, {{Code|typ jednostki 2}}, ..., tzn. gdy chcemy określić z jakim typem jednostki mamy do czynienia w zależności do jakiej przestrzeni nazw należy, a w danej, czy jest on np. programowy, czy tylko jest opisem, jak to bywa w szablonach {{Np|Template|link=tak}}, podobnie jest w przypadku {{Np|Module|link=tak}}, czy jak jest w innych przestrzeniach nazw, ** {{Code|dyskusja typu jednostki}} (parametr bazowy) i {{Code|dyskusja typu jednostki i}} (parametr domyślny numerkowy) - i te z numerkiem: {{Code|dyskusja typu jednostki 1}}, {{Code|dyskusja typu jednostki 2}}, ..., gdy chcemy określić wartością niepustą, że chodzi tutaj o typ jednostki. === Parametry bazowe i numerkowe === Parametry bazowe (bez numerka i {{Code|i}}, po spacji) są te z nazwami przestrzeni nazw, nazwami jednostek, typów jednostek i {{Code|dyskusja typu jednostki}}, jako nazwane bazowe, a te z numerkiem po spacji na końcu, jako numerkowe, a te z {{Code|i}} po spacji, jako ogólne numerkowe, to parametry ogólne dostępne dla wszystkich parametrów pudełkowych bazowych podanych powyżej, oprócz parametrów nazw jednostek, służą one, do tego, gdy jakaś zmienna numerkowa nie została podana, a jeżeli ona natomiast nie istnieje, to wtedy dla numerków brana jest ta wersja odpowiednia bazowa. === Ważność parametrów pudełkowych, parametry ramki rodzica, a dziecka === Parametry puddełkowe podawane w rodzicu w szablonie można dać w ramce dziecka, wtedy parametry dziecka mają pierwszeństwo. === Liczenie nazw przestrzeni nazw z parametrów przestrzennych i typów jednostek z parametrem dyskusja typu jednostek === Najpierw w funkcji nagłówku brane są parametry nazw przestrzeni nazw, a jeżeli ich nie ma, to parametry typu jednostki, a jeżeli nie ma, to generowane są typy jednostki na podstawie aktualnego modułu. === Notatka dla funkcji pudełkowych === Parametry pudełek nie powinno się podawać w dziecku w ramce, tylko w rodzicu w szablonie jako parametry, w którym ta ramka jest wywoływana, ale tutaj podano jedynie dla przykładu, jak najłatwiej sprawdzić działanie tych parametrów tej funkcji. == Opis rodzajów typów jednostek == Typy jednostek to odpowiednik przestrzeni nazw i nie tylko, bo mówi dodatkowo jakiego typu strona jest danej przestrzeni nazw, czy to jest główny artykół podręcznika, czy zwykły, itp., mówi jakie jest to korzeń strony danej przestrzeni, nie musi być do podręcznik, czy podręcznik dla dzieci, objawia, czy np. jest to brudnopis i jakiego typu, czy w brudnopisie {{lr2|Brudnopis}}, jaki to jest artykuł główny i zwykły. Dla stron szablonów i modułów, również im odpowiadające strony brudnopisu, tzn. {{ls2|Brudnopis}} i {{ld2|Brudnopis}}, w przestrzeniach danego użytkownika, jakie strony są szablonami, czy modułami, a jakie ich opisami. === Typy jednostek i odpowiadające im nazwy przedmiotowe przestrzeni nazw === Są to wartości zwracane przez funkcję ramki: {{Code|{{m|Pudełko|Typ jednostki}}}}, i jego podobnych, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}. One obrazują odpowiednie przestrzenie, które należy zasymulować lub w których się znajduje, jeżeli ta funkcja jest bez parametrów, nie licząc {{Parametr|numer jednostki}} lub ten parametr przyjmuje wartość zero, ale rodzic szablon, wtedy nie może przyjmować żadnych parametrów pudełkowych dla pozycji bazowej. Dla pozycji numerkowych ten parametr wskazuje jakiego typu przestrzenie nazw reprezentuje strona podana jako tego typu parametr, ale musi być podana ta zmienna numeru jednostki, np. z przykładowa wartością {{Parametr|numer jednostki|2}}. ==== Strony przedmiotowe ==== * Pzestrzeń główna - przestrzeń nazw {{Np|(main)|link=tak}}: ** {{Code|artykuł}} i {{Code|podręcznik}} - artykuł normalny podręcznika i jego strona główna, * Przestrzeń projektów dla dzieci - przestrzeń nazw {{Np|Wikijunior|link=tak}}: ** {{Code|artykuł dla dzieci}} i {{Code|podręcznik dla dzieci}} - artykuł normalny podręcznika dla dzieci i jego strona główna, w przestrzeni nazw {{Np|Wikijunior|link=tak}}, * Strony projektu - przestrzeń nazw {{Np|Project|link=tak}}: ** Podręczniki: *** {{Code|artykuł brudnopisu projektu}}, {{Code|podręcznik brudnopisu projektu}} - artykuł normalny brudnopisowy podręcznika i jego strona główna, w przestrzeni nazw {{lr2|Brudnopis}}, *** {{Code|jednostka brudnopisu projektu}} - jest to artykuł lub podręcznik w przestrzeni brudnopisowej {{lr2|Brudnopis}}, zamiast je nazywać jako {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, ** Strony: *** {{Code|strona brudnopisu projektu}} - ogólnie nazwana strona brudnopisu projektu, zamiast je nazywać: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}} albo {{Code|jednostka brudnopisu projektu}}, ** {{Code|strona projektu}} - zwykła niebrudnopisowa strona projektu, * Strony szablonu - przestrezeń nazw {{Np|Template|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona szablonu}} i {{Code|strona opisu szablonu}} - niebrudnopisowa strona szablonu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ls2|Brudnopis}}, *** {{Code|strona brudnopisu szablonu}} i {{Code|strona brudnopisu opisu szablonu}} - brudnopisowa strona szablonu i jego opisu, * Strony modułu - przestrzeń nazw {{Np|Module|link=tak}}: ** Strony niebrudnopisowe: *** {{Code|strona modułu}} i {{Code|strona opisu modułu}} - niebrudnopisowa strona modułu i jego opisu, ** Strony brudnopisowe - nibyprzestrzeń nazw {{ld2|brudnopis}}: *** {{Code|strona brudnopisu modułu}} i {{Code|strona brudnopisu opisu modułu}} - brudnopisow sstrona modułu i jego opisu, * Strony użytkownika - przestrzeń nazw {{Np|User|link=tak}}: ** Strony podręcznikowe: *** {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} - artykuł normalny podręcznika i jego strona główna, *** {{Code|jednostka użytkownika}} - inaczej nazwana strony podręcznika, nawet główna, czyli {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}}, ** Inne strony: *** {{Code|strona główna użytkownika}} - strona główna użytkownika, *** {{Code|strona użytkownika}} - inaczej nazwana strona użytkownika, zamiast: {{Code|artykuł użytkownika}} i {{Code|podręcznik użytkownika}} oraz {{Code|strona główna użytkownika}}, * Inne typy jednostek: ** {{Code|strona pliku}} - strona w przestrzeni nazw pliku {{Np|File|link=tak}}, ** {{Code|strona kategorii}} - strona w przestrzeni nazw kategorii {{Np|Category|link=tak}}, ** {{Code|strona pomocy}} - strona pomocy w przestrzeni nazw pomocy {{Np|Help|link=tak}}, ** {{Code|strona komunikatu}} - strona komunikatów w przestrzeni nazw {{Np|MediaWiki|link=tak}}, ** {{Code|strona specjalna}} - strona specjalna w przestzreni nazw {{Np|Special|link=tak}}, ** {{Code|strona główna projektu}} - strona główna projektu {{lr2|Strona główna}} w przestrzeni nazw {{Np|Project|link=tak}}, ** {{Code|strona główna dla dzieci}} - strona główna dla dzieci {{lj2|Strona główna}} w przestrzeni nazw {{Np|Wikijunior|link=tak}}. ==== Strony dyskusji ==== Nazwy typu jednostek {{Code|typ jednostek}} są takie same jak dla przestrzeni przedmiotowej, tylko z tą różnicą, za po spacji po pierwszym wyrazie występuje wyraz {{Code|dyskusji}}. i tak tego typu typy jednostek dla różnych przestrzeni nazw dyskusji są tworzone. ; Przykłady * {{Code|artykuł}} → {{Code|artykuł dyskusji}}, * {{Code|artykuł dla dzieci}} → {{Code|artykuł dyskusji dla dzieci}}, * {{Code|strona użytkownika}} → {{Code|strona dyskusji użytkownika}}. ==== Strony niedopasowane ==== Jeżeli strona została niedopasowana do przestrzeni przedmiotowej, czy dyskusji, to funkcja {{Code|{{m|Pudełko|Typ jednostki}}}}, wtedy zwraca wartość {{Code|inne}}. === Tworzenie typów jednostek dyskusji i rodzina parametrów {{Code|dyskusja typu jednostki}} === Można poddać nazwę typu jednostki dla przestrzeni dyskusji, ale jest za to inny sposób, wtedy to samo skostrułować nalezy podać typ jednostki dla przestrzeni przedmiotowej i parametr dyskusji typu jednostki, np. dla pozycji bazowej {{Code|dyskusja typu jednostki}} z wartością {{Code|tak}}. Również z tą wartością może typ jednostki dla przestrzeni dyskusji, ale wtedy otrzymujemy tożssamość. Podobnie jest z tym dla parametrów typu jednostki i dyskusji typu jednostki dla pozycji numerkowej, tylko te parametry posiadają dodatkowy numerek na końcu po spacji lub podane w postaci ogólnej, jako litera {{Code|i}} na końcu tych zmiennych po spacji. === Parametry dodatkowe typów jednostek === ==== Wprowadzenie ==== Przedstawimy tu na przykładzie funkcji: {{Code|{{m|Pudełko|Typ jednostki}}}}, ale rozważania też dotyczą jego podobnych, tzn. wersji podstawowej, dwa i trzy oraz w wersji bezposredniej (typ jednostki jest liczony bez transformacji), przedmiotowej (typ jednostki jest zamieniany na przedmiotową) i dyskusji (typ jednostki jest zamieniany na dyskusji), niezależnie, czy to obrazuje przestrzeń nazw przedmiotową (o numerku parzystym), czy dyskusji (o numerku nieparzystym, o jeden zwyż w porównaniu z tą odpowiadającą przedmiotową). Dodatkowe parametry podajemy w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w sposob, np: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Lub z to samo, ale z parametrem {{Parametr|numer jednostki|2}} z przykładową wartością, wartość {{Code|0}}, wtedy tego parametru można nie podawać, oznacza przestrzeń bazową, a {{Code|1}}, {{Code|2}},..., natomiast numerkową, wtedy ten parametr jest konieczny, a te numerki oznaczają numer parametru typu jednostki lub dyskusji typu jednostki, więc: * {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak|numer jednostki{{=}}2}}}}. Te parametry dodatkowe coś oznaczają. ==== Opis tych parametrów ==== W nagłówkach tytułów są to parametry podawane do ramki, w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w parametrach dziecka szablonu rodzica. Parametry te, które mają wartość pustą, można nie podawać, ale można, ale je można podać dla uwypuklenia problemu. Te parametry można łączyć ze sobą. Poniżej podano przykładowe wywołania z jednym tylko parametrem. Dokładniejszy opis tych funkcji ze strony programowej, jako kod w {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jest na stronie {{Code|{{m|Pudełko/Pomocne}}}}. ===== {{Code|obsługiwane jednostki jako nieopisowe strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki jako nieopisowe strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|(main)|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł}}, * {{Np|Wikijunior|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|artykuł dla dzieci}}, * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}, * {{Np|Project|link=tak}} w nibyprzestrzeni nazw {{lr2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu projektu}}, * {{Np|Template|link=tak}} w nibyprzestrzeni nazw {{ls2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu szablonu}}, * {{Np|Module|link=tak}} w nibyprzestrzeni nazw {{ld2|Brudnopis}} - to wtedy funkcja zwraca wynik: {{Code|strona brudnopisu modułu}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. * {{Np|User|link=tak}} - to wtedy funkcja zwraca wynik: {{Code|strona użytkownika}}. ===== {{Code|obsługiwane jednostki użytkownika}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki użytkownika{{=}}tak}}}}. * {{Np|User|link=tak}} to wtedy funkcja zwraca wynik: {{Code|artykuł użytkownika}} lub {{Code|podręcznik użytkownika}}, w przeciwnym wypadku: {{Code|jednostka użytkownika}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane brudnopisy jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane brudnopisy jako normalne strony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|strona projektu}}, * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona szablonu}} lub {{Code|strona opisu szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona modułu}} lub {{Code|strona opisu modułu}}. ===== {{Code|obsługiwane jednostki brudnopisu projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane jednostki brudnopisu projektu{{=}}tak}}}}. * {{Np|Project|link=tak}} - to wtedy otrzymamy: {{Code|artykuł brudnopisu projektu}} lub {{Code|podręcznik brudnopisu projektu}}, w przeciwnym wypadku: {{Code|jednostka brudnopisu projektu}}, w przypadku nieużycia tego parametru. ===== {{Code|obsługiwane strony jako niebrudnopisowe jednostki programowe}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane strony jako niebrudnopisowe jednostki programowe{{=}}tak}}}}. * {{Np|Template|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy wynik: {{Code|strona modułu}}. ===== {{Code|obsługiwane opisy jako strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane opisy jako strony jednostek programowych{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}, * {{Np|Module|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu modułu}} lub {{Code|strona modułu}}. ===== {{Code|obsługiwane nieudokumentowane szablony jako szablony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Typ jednostki|obsługiwane nieudokumentowane szablony jako szablony{{=}}tak}}}}. Dla przestrzeni nazw po umieszczeniu szablonu z nim tam na stronie na wymienionych przestrzeniach nazw: * {{Np|Template|link=tak}} - to wtedy otrzymamy: {{Code|strona brudnopisu szablonu}} lub {{Code|strona szablonu}}. ==== Możliwe błędy wywołań {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych ==== Te błędy występują, w wywołaniach {{Code|{{m|Pudełko|Typ jednostki}}}} i jego podobnych, gdy typ jednostki podany do parametru rodzica ramki {{lpg|Lua}} w {{lpr|Lua|Scribunto}} jest o zawartości niepustej. ===== {{Code|(błąd typu jednostki)}} ===== Występuje, gdy typ jednostki nie chce się zgadzać, z wyróznionymi w funkcji, z nazwami przestrzeni nazw. Ten błąd występuje, gdy parametr {{Parametr|analiza}} jest o zawartości pustej lub nie podany. Wtedy typ jednostki nie jest liczony od nowa, aby sprawdzić z tą podaną. Ten błąd czasami występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}, wtedy gdy nie podamy nazwy jednostki, i nie chcą się zgadzać parametry pudełkowe, w odróżnieniu od błędu {{Code|(błąd parametrów pudełkowych)}}. Wtedy typ jednostki jest liczony od nowa, aby sprawdzić z tą podaną. ===== {{Code|(błąd niezgodności)}} ===== Występuje, gdy uzyskana przestrzeń nazw z typu jednostki i parametrów przestrzennych, nie są ze sobą zgodne, gdy nazwa jednostki jest nie podana i parametr {{Parametr|analiza}} również lub jest o zawartości pustej. ===== {{Code|(błąd parametrów pudełkowych)}} ===== Występuje, gdy nazwa przestrzeni nazw i nazwa jednostki, dla parametrów bazowych i numerkowych, są podane, wtedy nie chcą się zgadzać parametry pudełkowe, tzn. parametry przestrzenne i jednostki oraz typu jednostki nie są ze sobą zgodne. Ten błąd występuje, gdy do wywołania tej funkcji dodamy parametr {{Parametr|analiza|tak}}. == Parametry pudełkowe == Tutaj przedstawione sa parametry funkcji pudełkowych we wszystkich wersjach, czy się rożnią parametry w ich różnych, jak są tworzone wartości, itp. Przedstawione tu wiadomości dotyczą funkcji pudełkowych nazw przestrzeni nazw, nazw jednostek, pełnych nazw stron i typów jednostek. === Parametry ramki i szablonu === Parametry funkcji to są parametry podawane bezpośrednio do funkcji. Są też parametry ramki tablicy transportu dzieckai jego rodzica. * Dla przykładu w opisach funkcji parametry będziemy podawać nie w rodzicu w szablonie, tylko w dziecku, jeśli chodzi o parametry różnych funkcji pudełkowych nazw przesstrzeni nazw, nazw jednostek, pełnych nazw jednostek i typów jednostek, ale ich się za to nie powinno podawać w tych ramkach, tylko w szablonach, w których wywoływane są te ramki pudełek {{Code|{{m|Pudełko}}}}, ale tak jest podawane w opisach tych funkcji w następnych tomach, że tak zrobiono by było najłatwiej sprawdzić działanie tego typu funkcji. ==== Parametry funkcji ==== ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek, ich parametry ===== Funkcje nazw przestrzeni nazw i pełnych nazw jednostek mają następujące parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|czy_uwzglednic_alternatywna_nazwe}} - czy ma uwzględniać nazwę przestrzeni nazw domyślną szablonu, dostępne wartości: {{Code|false}}, w której nazwa domyślna nie jest uwzględniana wtedy, oraz {{Code|nil}} i {{Code|true}}, które oznaczają to samo, w tym jeżeli ona jest uwzględniana, wtedy jest brany parametr pierwszy dziecka, który musi istnieć przy takiej wartości tego parametru, tzn. {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Szablon}}}}, a ten element jest używany, gdy nazwa uzyskana nazwy przestrzeni nazw jest w takim przypadku błędna, a jeżeli wtedy nazwa domyślna jest błędna, czyli {{Code|{{m|Pudełko|<Funkcje nazw przestrzeni nazw i pełnych nazw jednostek>|Moja przestrzeń}}}}, wtedy funkcja zwraca stan błędu {{Code|(błąd)}}, ** Przykład: {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Moja przestrzeń}}}}, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw. ===== Funkcje nazw jednostek i typów jednostek, ich parametry ===== Funkcje nazw jednostek mają następujące parametry: Parametry funkcji: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|i}} - numer zmiennej nazwy przestrzeni nazw i nazwy jednostki. ==== Parametry rodzica ramki dziecka ==== Do tych parametrów reprezentującą nazwę przestrzeni nazw można podać typ jednostki i dyskusję typu jednostki z odpowiedniki wartościami. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji podstawowej ===== Funkcje te liczą nazwy przestrzeni nazw, wychodząc wyłącznie od zmiennych przestrzennych i typów jednostek, więc ona przyjmuje parametry: * Parametry przestrzenne bazowe i numerkowe, * Parametry typów jednostek, ** Parametry dyskusji typówj jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji drugiej ===== * W porównaniu z wersją podstawową potrzebuje on również parametry nazw jednostek bazowe i numerkowe. Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to wtedy nazwa przestrzeni nazw jest liczona z parametrów nazw jednostek. ===== Funkcje nazw przestrzeni nazw i typów jednostek, w wersji trzeciej ===== * Wersja bazowa nazwy jednostek w porownaniu z wersją drugą jest niepotrzebna, a pozostały nazwy jednostek, te numerkowe już tak, a nazwy przestrzeni nazw są zawsze potrzebne, niezależnie jakie. * Dla parametrów przestrzennych wersja bazowa działa jak podstawowa, a numerkowe jak w wersji drugiej. ===== Funkcje nazw jednostek i ich parametry ===== ====== Funkcje nazw jednostek w wwersji podstawowej ====== * Funkcje nazw jednostek bezpośrednio ściągają policzony wynik ze zmiennej nazwy jednostek. ====== Funkcje nazw jednostek w wwersji drugiej ====== * Dla funkcji dla parametrów bazowych i numerkowych bardzo ważne są wartości parametrów przestrzennych, a jezeli wzkazuje ona na przestrzeń główną lub ewentualnie na „Dyskusja” w przypadku funkcji przedmiotowych, to znazwy jednostki jest odejmowana nazwa przestrzeni nazw, w przeciwnym wypadku nazwa jednostki jest powtarzana. ====== Funkcje nazw jednostek w wersji trzeciej ====== * Parametr nazw przestrzeni nazw dla parametrów bazowych jest niepotrzebny, a numerkowe już tak. * Dla parametrów nazw przestrzenni nazww, nazw jednostek i typów jednostek, a nawet dyskusji typów jednostek (podawane warz typami jednostek tylko), wersja bazowa działa jak podstawowa, a numerkowa jak w wersji drugiej. ===== Funkcje pełnych nazw jednostek ===== Te funkcje potrzebują parametrów zarówno przestrzennych jak i nazw jednostek dla parametrów bazowych i przestrzennych. ==== Parametry ramki dziecka w szablonie rodzica ==== Parametry ramki tablicy transportu dziecka: * Parametry dziecka są takie same jak rodzica dla funkcji pudełkowej bez parametrów, które są wyłącznie podawane w parametrach rodzica, * {{Code|numer jednostki}} - jak parametr {{Code|i}} parametru funkcji, a jeśli nie został ustawiony, to wtedy liczy się ta zmienna, jest to numer nazwy przestrzeni nazw, czy nazwy jednostki, a nawet typu jednostki, czy dyskusji typów jednostki. * Jest jeszcze pierwszy parametr, o nummerze {{Code|1}}, dla funkcji pudełkowych przestrzennych, pełnych nazw jednosteki typów jednostek, który jest domyślną nazwą przestrzeni nazw, jeżeli parametr ze zmiennej odpowiedniej przestrzennej ma nieprawidłową nazwę, a nawet taka przesstrzeń może nie istnieć. * Przykład: *# {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template}}}}, *# czy inny przykład z numerem jednostki: {{Code|{{m|#invoke:Pudełko|Nazwa porzestrzeni nazw|Template|numer jednostki{{=}}2}}}}. * Też parametr dziecka pierwszy może mieć nieprawidłową nazwę, wtedy funkcja zrzuca stan błędu w postaci komunikatu {{Code|(błąd)}} w przypadku liczenia nazwy przestzreni nazw w pewnych funkcjach pudełkowych. ==== Funkcje pudełkowe bezpośrednie ==== * Funkcje licza bezpośrednio nazwę przestrzeni nazw bez transformacji na przedmiotową lub dyskusji, jest ona liczona z parametrów przestrzennych lub ewentualnie z nazwy jednostek, jeżeli odpowiednie parametry przestrzenne mają ściśle określone wartości. * Funkcje pełnych nazw jeddnostek wykorzystują funkcje, liczace nazwę przestrzeni nazw do liczenia nazwy przestrzeni nazw plus z nazwą jednostki tworzą pełny adres strony. ==== Funkcje pudełkowe przedmiotowe ==== Te parametry liczone przez te funkcje, w nich elementy przestrzenne są zamieniane na wartości przedmiotowe, tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na nią samą, czyli identyfikator przestrzeni się nie zmienia, a dyskusji, nie przedmiotową, przekształca się na przedmiotową jej odpowiadającą, czyli w tym przypadku identyfikator przestrzeni zmniejsza się o numer mniej. ==== Funkcje pudełkowe dyskusji ==== Te parametry liczone przez te funkcje, w nich elementy przestrzenne są zamieniane na wartości przedmiotowe, tzn. nazwę przedmiotową nazwy przestrzenie nazw, czyli nie dyskusji, zamieniana jest na dyskusji, czyli identyfikator przestrzeni się zmienia jeden wyżej, a dyskusji, nie przedmiotową, przekształca się na tą samą. == Jak tworzyć szablony pudełkowe na podstawie funkcji pudełkowych pudełek zdefiniowanych w: {{Code|{{m|Pudełko}}}} == Ten rozdział przedstawia ogólny sposób tworzenia szablonów pudełkowych z funkcjami pudełkowymi wywołań {{m|Pudełko}} z rożnymi funkcjami, niezależnie z jakimi wersjami. Przykładowy obraz wywołania szablony z parametrami pudełkowymi: <syntaxhighlight lang="mediawiki"> <!-- Szablon podany z parametrami pudełkowymi z parametrami bazowym i numerkowyminawet ogólnymi; --> {{Nazwa szablonu|nazwa przestrzeni nazw=Pomoc|nazwa przestrzeni nazw 2=Pomoc|nazwa przestrzeni nazw i=Moduł|nazwa jednostki=Wikibooks:Strona|nazwa jednostki 2=Pomoc:Strona}} </syntaxhighlight> W dziecku powiedzmy jest wywołanie, i szukamy nazwy przestrzeni nazw o numerze, np. dwa, która nie została podana, ale istnieje za to jej wersji ogólna {{Code|nazwa przestrzeni nazw i}} i domyślna {{Code|nazwa przestrzeni nazw}}, wtedy możemy powiedzieć w definicji tego szablonu: Dla parametrów bazowych, aby je uzyskać, przy różnych funkcjach pudełkowych, piszemy: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} <!-- Równowaznie możemy napisać: {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=0}} --> </syntaxhighlight> Lub można napisać z parametrem numeru jednostki {{Code|numer jednostki}} z wartością większa niż zero,jako liczba całkowita dodatnia dla parametrów numerkowych: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> {{#invoke:Pudełko|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>|numer jednostki=<numer jednostki parametru pudełkowych funkcji>}} </syntaxhighlight> Tą funkcję można też bezpośrednio wywołać na stronie z parametrami pudełkowymi plus parametr {{Parametr|numer jednostki|<jakiś numer>}}. Opis parametrów funkcji pudełkowych: * {{Code|<nazwa funkcji pudełkowej w wersji bazowej lub numerkowej>}} - jest to funkcja pudełkowa napisana w module {{Code|{{m|Pudełko}}}}, * {{Code|<numer jednostki parametru pudełkowych funkcji>}} - numer para,metru pudełkowego numerkowego lub numerkowych, jakieś funkcji w tym module. Funkcja drukuje wynik na podstawie typu funkcji pudełkowej przy pomocy numeru wersji lub w wersji, bedać w wersji bazowej, wtedy parametru {{Parametr|numer jednostki|0}} nie trzeba podawać, ale można z tą wartością. Przykładami ostatniego wywołania są: <syntaxhighlight lang="mediawiki"> <!-- Wywołanie funkcji pudełkowej w szablonie {{Nazwa szablonu}}; --> <!-- Pierwszy przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw}} <!-- liczenie nazwy przestrzeni nazw dla jednostki bazowej --> {{#invoke:Pudełko|Nazwa jednostki}} <!-- liczenie nazwy jednostki dla jednostki bazowej --> <!-- Drugi przykład --> {{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}} <!-- Liczenie nazwy przestrzeni nazw dla jednostki o numerze dwa --> {{#invoke:Pudełko|Nazwa jednostki|numer jednostki=2}} <!-- Liczenie nazwy jednostki dla jednostki o numerze dwa --> </syntaxhighlight> == Spis treści == === Dokumentacja modułu {{Code|{{ld2|Pudełko}}}} === * {{lr|Moduły/Pudełko/Tom I|Tom I}} - opis funkcji, nazw przestrzeni nazw i nazwy jednostek, normalnych, przedmiotowych i dyskusji, * {{lr|Moduły/Pudełko/Tom II|Tom II}} - opis funkcji, pełnych nazw jednostek, * {{lr|Moduły/Pudełko/Tom III|Tom III}} - opis funkcji typu jednostek, * {{lr|Moduły/Pudełko/Tom IV|Tom IV}} - opis funkcji błędów i cech (stworzonych na podstawie tego błędów) pudełka, normalnych, przedmiotowych i dyskusji. * {{lr|Moduły/Pudełko/Tom V|Tom V}} - Także dokumentacji kodów i kluczy wiki, nazw stron projektu i dla dzieci, funkcje badania jakie to wiki oraz kody wiki tego projektu, itp. Opisuje funkcje, czy do szablonów pudełek podano parametry numerowane, nienazwane i nazwane. === Inne podmoduły === * {{sr|Pomocne|p=Pudełko|Pudełko - Pomocne}} - funkcje, z których korzystają funkcje zdefiniowane w wywołaniach modułowych {{m|Pudełko}}, * {{sr|Potrzebne|p=Pudełko|Pudełko - Potrzebne}} - funnkcje potrzebne do budowy wywołań ogólnego pudełka {{m|Pudełko|Ogólne pudełko}}, * {{sr|ParametryCechy|p=Pudełko|Pudełko - Parametry Cechy}} - funkcje zapytań potrzebne do implementacji szablonu {{s|Szablonowy opis pudełka}}. {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 4939fy245dubvd39a44o3zshxh7pkmy Wikibooks:Moduły/Pudełko/Tom I 4 63495 541051 2026-04-27T19:20:10Z Persino 2851 Utworzono nową stronę "<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude>" 541051 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> kf2jbzz32rgiqo0cyku2tor68v1tpfx 541161 541051 2026-04-28T07:59:39Z Persino 2851 541161 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskuja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskuja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskuja pomocy|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja liczy bezpośrednio nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> h03vzt2lce7tegtccf392s0fc6mixdr 541162 541161 2026-04-28T08:06:11Z Persino 2851 /* {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} */ 541162 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskuja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskuja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskuja pomocy|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja liczy bezpośrednio nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja liczy bezpośrednio nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> am76somhv9atna0ocvjf4nq3o49itm5 541163 541162 2026-04-28T08:08:59Z Persino 2851 /* Funkcje nazw przestrzeni nazw drugiej wersji */ 541163 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskuja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskuja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskuja pomocy|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja liczy bezpośrednio nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja liczy nazwę przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja liczy nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja liczy nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> oj5j5lxycw4hhgyx0eguq1xjm13r99c 541164 541163 2026-04-28T08:17:24Z Persino 2851 /* Funkcje nazw przestrzeni nazw trzeciej wersji */ 541164 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskuja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskuja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskuja pomocy|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja liczy bezpośrednio nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja liczy nazwę przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja liczy nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja liczy nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja liczy nazwę przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Pomoc:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja liczy nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przedmiotowej, po transformacji, przestrzeni głównej (to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości, po przekształceniu, przedmiotowej przestrzeni głównej (okresla to przestrzeń nazw główną lub „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja liczy nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> pjzyhbdbqdnwkpnkfhbepuujy7dwnix 541165 541164 2026-04-28T08:19:51Z Persino 2851 dnostki 541165 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskuja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskuja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskuja pomocy|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja liczy bezpośrednio nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja liczy nazwę przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja liczy nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja liczy nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja liczy nazwę przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Pomoc:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja liczy nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przedmiotowej, po transformacji, przestrzeni głównej (to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości, po przekształceniu, przedmiotowej przestrzeni głównej (okresla to przestrzeń nazw główną lub „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja liczy nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funckja bezpośrednio przepisuje nazwę jednostki z parametrów nazwy jednostki. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 8501swew4zad91yii4bwwp1fhiyazyx 541166 541165 2026-04-28T08:29:16Z Persino 2851 /* Funkcje nazw jednostki drugiej wersji */ 541166 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskuja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskuja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskuja pomocy|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja liczy bezpośrednio nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja liczy nazwę przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja liczy nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja liczy nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja liczy nazwę przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Pomoc:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja liczy nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przedmiotowej, po transformacji, przestrzeni głównej (to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości, po przekształceniu, przedmiotowej przestrzeni głównej (okresla to przestrzeń nazw główną lub „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja liczy nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funckja bezpośrednio przepisuje nazwę jednostki z parametrów nazwy jednostki. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja liczy nazwę jednostki na podstawie parametrów przestrzennych i nazw jednostki, jeżeli nazwa przestrzeni nazw ma odpowiednią nazwę, to jest liczona nazwa strony z nazwy jednostek. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających, w pozostałych przypadkach ona działa, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja liczy przedmiotową nazwę jednostki na podstawie parametrów przestrzennych i nazw jednostki, jeżeli nazwa przestrzeni nazw ma odpowiednią nazwę, to jest liczona nazwa strony z nazwy jednostek. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli, np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa, po zamianie, nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną, czy „Dyskusja”), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskuja pomocy|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskuja pomocy|nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskuja pomocy|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja liczy dyskusji nazwę jednostki na podstawie parametrów przestrzennych i nazw jednostki, jeżeli nazwa przestrzeni nazw ma odpowiednią nazwę, to jest liczona nazwa strony z nazwy jednostek. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli, np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 29333z3u4nquz8nt2ckcpffg0q11hig 541167 541166 2026-04-28T08:36:32Z Persino 2851 /* Funkcje nazw jednostki trzeciej wersji */ 541167 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == {{Code|p.CzyNiepoprawnaNazwa(nazwa_jednostki)}} == Funkcja sprawdzajaca, czy jest poprawnie podana nazwa jednostki, czy ma poprawną nazwę. Znakami tymi, z których nie powinna składać się nazwa jest {{Code|<nowiki>{}<>|[]#\n</nowiki>}} i dodatkowo znak {{Code|&#127;}} (kod {{Code|{{Nowiki|&#127;}}}}). Też nie może składać się z trzech znaków tyldy, tzn. {{Code|<nowiki>~~~</nowiki>}}. Również w swojej budowie nie może składać się ze kodów {{Strong|HTML}} literowych o wzorze {{Code|{{Nowiki|&(%a+);}}}}. Natomiast może składać się z {{Code|{{Nowiki|&#(%d+);}}}} i {{Code|{{Nowiki|&#x(%x+);}}}}, ale w pierw te kody muszą być zamienione na normalne znaki. Skrótowa definicja funkcji: <syntaxhighlight lang="lua"> function p.CzyNiepoprawnaNazwa(nazwa_jednostki)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Moduł: "Moduł:Html/dane", służy do ładowania znaku o kodzie HTML "&#127;"; local html_dane_modul=mw.loadData("Module:Html/dane"); return mw.ustring.match(nazwa_jednostki,"[{}<>|%[%]#\n"..html_dane_modul.znak_127.."]+") or mw.ustring.match(nazwa_jednostki,"~~~") or mw.ustring.match(nazwa_jednostki,"&(%a+);"); </syntaxhighlight> Parametry: * {{Code|nazwa_jednostki}} - nazwa jednostki do sprawdzenia. Przykłady: <syntaxhighlight lang="lua"> local pudelko_modul=require("Module:Pudełko"); -- Podana przykładowa niepoprawna nazwa jedostki local nazwa_jednostki="Nazwa pliku [[Nazwa linku w pliku]]"; -- Funkcja zwróci wartość: local czy_poprawna_nazwa=true; local czy_poprawna_nazwa=pudelko_modul.CzyNiepoprawnaNazwa(nazwa_jednostki); </syntaxhighlight> == Funkcje nazw przestrzeni nazw == === {{Code|p["Nazwa przestrzeni nazw"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,0, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)}} === Funkcja liczy bezpośrednio nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,1, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2=Dyskuja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw i=Dyskuja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw{{=}}Dyskuja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw|nazwa przestrzeni nazw=Dyskuja pomocy|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji"](frame,...)}} === Funkcja liczy bezpośrednio nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw(frame,2, czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} == Funkcje nazw przestrzeni nazw drugiej wersji == === {{Code|p["Nazwa przestrzeni nazw 2"](frame,...)}} === Funkcja liczy nazwę przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw, jeżeli z parametrów przestrzennych przestrzeń wskazuje na główną, to wtedy jest liczona przestrzeń nazw z nazwy jednostki; return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_2(frame,czy_uwzglednic_alternatywna_nazwe,i) </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)}} === Funkcja liczy nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|nazwa przestrzeni nazw i=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 2|Dyskusja szablonu|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)}} === Funkcja liczy nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych po przekształceniu może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw dyskusji z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa dyskusji przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); return pudelko_pomocne_modul.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,czy_uwzglednic_alternatywna_nazwe,i,"dyskusja"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_przestrzeni_nazw_przedmiotowa_dyskusji_2(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|nazwa przestrzeni nazw i=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 2|Szablon|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} == Funkcje nazw przestrzeni nazw trzeciej wersji == === {{Code|p["Nazwa przestrzeni nazw 3"](frame,...)}} === Funkcja liczy nazwę przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Pomoc:Strona}|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowej przestrzeni nazw 3"](frame,...)}} === Funkcja liczy nazwę przedmiotowej przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przedmiotowej, po transformacji, przestrzeni głównej (to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości, po przekształceniu, przedmiotowej przestrzeni głównej (okresla to przestrzeń nazw główną lub „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowej przestrzeni nazw 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw przedmiotową na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw=Moja przestrzeń||nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|Dyskusja szablonu|nazwa przestrzeni nazw 2=Moja przestrzeń||nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowej przestrzeni nazw 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przestrzeni nazw dyskusji 3"](frame,...)}} === Funkcja liczy nazwę dyskusji przestrzeni nazw z parametrów przestrzennych, ewentualnie nazw jednostek, czy z typów jednostek,a nawet z dyskusja typu jednostek podawane wraz z tymi ostatnimi. Przestrzeń nazw z parametrów nazw przestrzennych bazowych (bez numerka) może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. W tym przypadku funkcja działa jak {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}. Przestrzeń nazw z parametrów nazw przestrzennych numerkowych może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przestrzeni nazw dyskusji 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw dyskusji na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,liczba_numeru_jednostki,nil,1); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy przestrzeni nazw dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw{{=}}Moja przestrzeń|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw=Moja przestrzeń|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2{{=}}Moja przestrzeń|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|Szablon|nazwa przestrzeni nazw 2=Moja przestrzeń|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przestrzeni nazw dyskusji 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje nazw jednostki == === {{Code|p["Nazwa jednostki"](frame,i)}} === Funckja bezpośrednio przepisuje nazwę jednostki z parametrów nazwy jednostki. Jeżeli chcemy, aby funkcja liczyła prawdziwą nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, nawet gdyby ona była z przestrzenią nazw; return pudelko_pomocne_modul.Nazwa_jednostki(frame,i); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Nazwa_jednostki(frame,i)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje nazw jednostki drugiej wersji == === {{Code|p["Nazwa jednostki 2"](frame,i)}} === Funkcja liczy nazwę jednostki na podstawie parametrów przestrzennych i nazw jednostki, jeżeli nazwa przestrzeni nazw ma odpowiednią nazwę, to jest liczona nazwa strony z nazwy jednostek. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli z parametrów przestrzennych wynika przestrzeń główna, to wtedy jest wyznaczana nazwa strony z parametrów jednostek odpowiadających, w pozostałych przypadkach ona działa, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,nil); </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowa jednostki 2"](frame,i)}} === Funkcja liczy przedmiotową nazwę jednostki na podstawie parametrów przestrzennych i nazw jednostki, jeżeli nazwa przestrzeni nazw ma odpowiednią nazwę, to jest liczona nazwa strony z nazwy jednostek. Co to znaczy przedmiotowa nazwa jednostki, tzn. gdy parametry przestrzenne wskazują na przestrzeń głównej i „Dyskusja”, wtedy ona zostanie zamieniona na przestrzeń główną, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli, np.: {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa, po zamianie, nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną, czy „Dyskusja”), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną i "Dyskusji"; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"przedmiotowa"); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Jaka_nazwa_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskuja pomocy|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskuja pomocy|nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskuja pomocy|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskuja pomocy|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa dyskusji jednostki 2"](frame,i)}} === Funkcja liczy dyskusji nazwę jednostki na podstawie parametrów przestrzennych i nazw jednostki, jeżeli nazwa przestrzeni nazw ma odpowiednią nazwę, to jest liczona nazwa strony z nazwy jednostek. Co to znaczy nazwa jednostki dyskusji, tzn. gdy parametry przestrzenne wskazują na przestrzeń główną, to wtedy ona nie jest zamieniana na „Dyskusja”, i wtedy jest liczona nazwa strony bez przestrzeni nazw z nazwy jednostki. W pozostałych przypadkach funkcja działa dla jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Parametry podaje się w parametrach rodzica wywołania tej funkcji {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2}}}} (ale ich nie trzeba podawać w dziecku, ale można) i w parametrach dziecka, jeśli chodzi o zmienną {{Code|numer jednostki}}, czyli, np.: {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|numer jednostki{{=}}<jakaś liczba całkowita naturalna>}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczenie nazwy jednostki, bez nazwy przestrzeni w nazwie strony, jeżeli parametry przestrzenne wskazują na przestrzeń nazw główną; return pudelko_pomocne_modul.Jaka_nazwa_jednostki(frame,i,"dyskusja"); </syntaxhighlight> Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje nazw jednostki trzeciej wersji == === {{Code|p["Nazwa jednostki 3"](frame,i)}} === Funkcja liczy nazwę jednostki na podstawie parametrów przestrzennych i nazw jednostki, jeżeli nazwa przestrzeni nazw ma odpowiednią nazwę, to jest liczona nazwa strony z nazwy jednostek. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} , tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa przedmiotowa jednostki 3"](frame,i)}} === Funkcja liczy przedmiotową nazwę jednostki na podstawie parametrów przestrzennych i nazw jednostki, jeżeli nazwa przestrzeni nazw ma odpowiednią nazwę, to jest liczona nazwa strony z nazwy jednostek. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy przedmiotowa nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną, czy „Dyskusja”), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa przedmiotowa jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskuja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskuja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskuja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskuja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Nazwa dyskusji jednostki 3"](frame,i)}} === Funkcja liczy dyskusji nazwę jednostki na podstawie parametrów przestrzennych i nazw jednostki, jeżeli nazwa przestrzeni nazw ma odpowiednią nazwę, to jest liczona nazwa strony z nazwy jednostek. Ta funkcja tak działa, dla parametrów przestrzennych oraz jednostek, bazowych, jak {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, i numerkowych, jak {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Jeżeli chcemy, aby funkcja liczyła podaną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, niezależnie, czy jest bazowa, czy numerkową, wtedy należy użyć funkcji {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Nazwa dyskusji jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> -- Jest liczony numer parametru nazwy przestrzeni nazw, domyslnie chodzi tu o numer bazowy parametrów przestrzennych i jednostek; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numeru_jednostki=((numer_jednostki)and(tonumber(numer_jednostki)) or 0); local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczy nazwę przestrzeni nazw na podstawie podanych parametrów; return pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,nil,liczba_numeru_jednostki,nil,2); </syntaxhighlight> Funkcja wykorzystuje {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} do wyznaczania ogólnego nazwy jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> mr3ekd8ik5afml4n7itptd4kgdxgord Wikibooks:Moduły/Pudełko/Tom II 4 63496 541052 2026-04-27T19:20:34Z Persino 2851 Utworzono nową stronę "<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude>" 541052 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> kf2jbzz32rgiqo0cyku2tor68v1tpfx 541168 541052 2026-04-28T08:48:02Z Persino 2851 541168 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja liczy bezpośrednio pełną nazwę strony z parametrów przestrzennych i nazw jednostki. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni przedmiotowej, z parametrów przestrzennych i nazw jednostki. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni dyskusji, z parametrów przestrzennych i nazw jednostki. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> le5xhje55wjmmltgrnyqms8funmpms0 541169 541168 2026-04-28T08:54:28Z Persino 2851 /* {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} */ 541169 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja liczy bezpośrednio pełną nazwę strony z parametrów przestrzennych i nazw jednostki. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni przedmiotowej, z parametrów przestrzennych i nazw jednostki. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni dyskusji, z parametrów przestrzennych i nazw jednostki. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja liczy pełną nazwę strony z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z ffunkcji pudełkowej w wersji drugiej. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni przedmiotowej, z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z ffunkcji pudełkowej w wersji drugiej. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni przedmiotowej, z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z ffunkcji pudełkowej w wersji drugiej. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 44jp9i6egaz6z84afdgkb53aktar2sa 541170 541169 2026-04-28T08:59:08Z Persino 2851 541170 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja liczy bezpośrednio pełną nazwę strony z parametrów przestrzennych i nazw jednostki. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni przedmiotowej, z parametrów przestrzennych i nazw jednostki. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni dyskusji, z parametrów przestrzennych i nazw jednostki. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja liczy pełną nazwę strony z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z funkcji pudełkowej w wersji drugiej. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni przedmiotowej, z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z funkcji pudełkowej w wersji drugiej. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni przedmiotowej, z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z funkcji pudełkowej w wersji drugiej. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> j36bs38re3ggz68rbluqzcnla8lfkaz 541171 541170 2026-04-28T09:05:11Z Persino 2851 /* Funkcje pełnych nazw jednostki trzeciej wersji */ 541171 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje pełnych nazw jednostki == === {{Code|p["Pełna nazwa jednostki"](frame,...)}} === Funkcja liczy bezpośrednio pełną nazwę strony z parametrów przestrzennych i nazw jednostki. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa przedmiotowa jednostki"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni przedmiotowej, z parametrów przestrzennych i nazw jednostki. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa dyskusji jednostki"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni dyskusji, z parametrów przestrzennych i nazw jednostki. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw dyskusji; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa jednostki"](frame,liczba_numer_jednostki); if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje pełnych nazw jednostki drugiej wersji == === {{Code|p["Pełna nazwa jednostki 2"](frame,...)}} === Funkcja liczy pełną nazwę strony z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z funkcji pudełkowej w wersji drugiej. Jeżeli chcemy, aby funkcja liczyła pełną nazwę jednostki, niezależnie nawet gdy nazwa przestrzeni jest o wartości pustej (wskazuje na przestrzeń główną), czy nie, wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); local nazwa_jednostki=pudelko_modul["Nazwa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni przedmiotowej, z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z funkcji pudełkowej w wersji drugiej. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o przedmiotowej wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną, czy „Dyskusja”), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przedmiotowej przestrzeni nazw 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa przedmiotowa jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa dyskusji jednostki 2"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni przedmiotowej, z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z funkcji pudełkowej w wersji drugiej. Jeżeli chcemy, aby funkcja liczyła prawdziwą pełną nazwę jednostki, nawet gdy nazwa przestrzeni jest o wartości pustej (nazwa przestrzeni nazw wskazuje na przestrzeń główną), wtedy należy użyć funkcji {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 2"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przedmiotową przestrzeni nazw; local nazwa_przestrzeni_nazw=pudelko_modul["Nazwa przestrzeni nazw dyskusji 2"](frame,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki); ---- Liczy nazwę jednostki; local nazwa_jednostki=pudelko_modul["Nazwa dyskusji jednostki 2"](frame,liczba_numer_jednostki); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} (do liczenia nazwy przestrzeni nazw), {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}} (do liczenia nazwy jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przestrzeni nazw i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw=Dyskusja|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 2|nazwa przestrzeni nazw 2=Dyskusja|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} == Funkcje pełnych nazw jednostki trzeciej wersji == === {{Code|p["Pełna nazwa jednostki 3"](frame,...)}} === Funkcja liczy pełną nazwę strony z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z funkcji pudełkowej w wersji podstawowej i drugiej. Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, wtedy dla przestrzeni nazw głównej nazwa przestrzeni z nazwy jednostki się nie liczy, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}, a tutaj się liczy. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,0,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa przedmiotowa jednostki 3"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni przedmiotowej, z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z funkcji pudełkowej w wersji podstawowej i drugiej. Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}}, wtedy dla przedmiotowej przestrzeni, po zamianie, nazw głównej (co odpowiada przestrzeni głównej lub „Dyskusja”) nazwa jednostki się nie liczy, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}, a tutaj się liczy. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa przedmiotowa jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa przedmiotowa jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,1,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przedmiotowej przestrzeni nazw 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa przedmiotowa jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Dyskusja pomocy:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Dyskusja pomocy:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa przedmiotowa jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} === {{Code|p["Pełna nazwa dyskusji jednostki 3"](frame,...)}} === Funkcja liczy pełną nazwę strony, w przestrzeni dyskusji, z parametrów przestrzennych i nazw jednostki, bezpośrednio, korzystając z funkcji pudełkowej w wersji podstawowej i drugiej. Ta funkcja nie tak samo działa, dla parametrów przestrzennych oraz jednostek, bazowych i numerkowych. Dla parametrów bazowych działa jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}}, wtedy dla przestrzeni nazw głównej nazwa przestrzeni z nazwy jednostki się nie liczy, a numerkowych jak: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}, a tutaj się liczy. Jeżeli chcemy, aby funkcja liczyła tą samą pełną nazwę jednostki dla parametrów przestrzennych, co bazowych, należy użyć: {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki"](frame,...)|p=Pudełko/Tom II}}}} lub {{Code|{{sr|#p["Pełna nazwa dyskusji jednostki 2"](frame,...)|p=Pudełko/Tom II}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Pełna nazwa dyskusji jednostki 3"]=function(frame,czy_uwzglednic_alternatywna_nazwe,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> ---- Liczenie, które parametry ma uwzględniać, tzn. bazowe, czy numerkowe; local numer_jednostki=i or frame.args["numer jednostki"]; local liczba_numer_jednostki=((numer_jednostki)and(tonumber(numer_jednostki))or 0); local pudelko_modul=require("Module:Pudełko"); ---- Liczy nazwę przestrzeni nazw i nazwę jednostki; local nazwa_przestrzeni_nazw,nazwa_jednostki=pudelko_pomocne_modul.Uzyskanie_nazw_jednostki(frame,2,czy_uwzglednic_alternatywna_nazwe,liczba_numer_jednostki,nil,0); ---- Liczy pełną nazwę jednostki; if(nazwa_przestrzeni_nazw~="")then return nazwa_przestrzeni_nazw..":"..nazwa_jednostki;else return nazwa_jednostki;end; </syntaxhighlight> Funkcja wykorzystuje: {{Code|{{sr|#p.Uzyskanie_nazw_jednostki(frame,...)|p=Pudełko/Pomocne}}}} (do liczenia nazwy przestrzeni nazw i jednostki), co na tej podstawie jest liczona pełna nazwa jednostki, do wyznaczania ogólnego nazwy przzestrzeni i jednostki dla pozycji bazowej i numerkowej, tzn. dla pozycji: jeden, dwa, trzy,..., itd, i ich ogólnej, tzn. według funkcji: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, dla pozycji zerowej. Ta funkcja uruchamia dla parametrów bazowych funkcje: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa jednostki"](frame,i)|p=Pudełko/Tom I}}}}, a dla numerkowych: {{Code|{{sr|#p["Nazwa przestrzeni nazw dyskusji 2"](frame,...)|p=Pudełko/Tom I}}}} i {{Code|{{sr|#p["Nazwa dyskusji jednostki 2"](frame,i)|p=Pudełko/Tom I}}}}. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}Szablon|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=Szablon|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}Szablon|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=Szablon|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki{{=}}Pomoc:Strona}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki=Pomoc:Strona}}}} * {{Code|{{m|Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Pełna nazwa dyskusji jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> abgsi45srmdvfgdlsuekwwj811xb01v Wikibooks:Moduły/Pudełko/Tom III 4 63497 541053 2026-04-27T19:20:52Z Persino 2851 Utworzono nową stronę "<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude>" 541053 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> kf2jbzz32rgiqo0cyku2tor68v1tpfx 541172 541053 2026-04-28T09:15:00Z Persino 2851 541172 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Różne rodzaje i typy funkcji typów jednostek == === Funkcje typu jednostki podstawowe === ==== {{Code|p["Typ jednostki"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych. Typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== Liczy przedmiotowy typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw przedmiotowe. Przedmiotowy typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na przedmiotowy, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== Liczy dyskusyjny typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw dyskusji. Dyskusyjny typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Dyskusyjny typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === Funkcje typu jednostki wersji drugiej === ==== {{Code|p["Typ jednostki 2"](frame,i)}} ==== {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> r7z686f2gg08p80zhgl7uqilyp6w7ba 541173 541172 2026-04-28T09:23:36Z Persino 2851 /* Funkcje typu jednostki wersji drugiej */ 541173 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Różne rodzaje i typy funkcji typów jednostek == === Funkcje typu jednostki podstawowe === ==== {{Code|p["Typ jednostki"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych. Typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== Liczy przedmiotowy typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw przedmiotowe. Przedmiotowy typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na przedmiotowy, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== Liczy dyskusyjny typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw dyskusji. Dyskusyjny typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Dyskusyjny typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === Funkcje typu jednostki wersji drugiej === ==== {{Code|p["Typ jednostki 2"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki. Typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki. Gdy parametry przestrzenne lub typ jednostki, jako parametr, w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== Liczy przedmiotowy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie przedmiotowe. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} ==== Liczy dyskusyjny typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie dyskusji. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === Funkcje typu jednostki wersji trzeciej === ==== {{Code|p["Typ jednostki 3"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> dzstms8ta2xdnsh77atar5va6xciyyb 541174 541173 2026-04-28T09:29:22Z Persino 2851 /* {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} */ 541174 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Różne rodzaje i typy funkcji typów jednostek == === Funkcje typu jednostki podstawowe === ==== {{Code|p["Typ jednostki"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych. Typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== Liczy przedmiotowy typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw przedmiotowe. Przedmiotowy typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na przedmiotowy, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== Liczy dyskusyjny typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw dyskusji. Dyskusyjny typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Dyskusyjny typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === Funkcje typu jednostki wersji drugiej === ==== {{Code|p["Typ jednostki 2"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki. Typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki. Gdy parametry przestrzenne lub typ jednostki, jako parametr, w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== Liczy przedmiotowy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie przedmiotowe. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} ==== Liczy dyskusyjny typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie dyskusji. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === Funkcje typu jednostki wersji trzeciej === ==== {{Code|p["Typ jednostki 3"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących przestrzenie nazw przedmiotowe. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 1gd3le8zkp8iz8lwyxsczav07w8n43d 541175 541174 2026-04-28T09:32:01Z Persino 2851 /* {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} */ 541175 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Różne rodzaje i typy funkcji typów jednostek == === Funkcje typu jednostki podstawowe === ==== {{Code|p["Typ jednostki"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych. Typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== Liczy przedmiotowy typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw przedmiotowe. Przedmiotowy typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na przedmiotowy, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== Liczy dyskusyjny typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw dyskusji. Dyskusyjny typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Dyskusyjny typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === Funkcje typu jednostki wersji drugiej === ==== {{Code|p["Typ jednostki 2"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki. Typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki. Gdy parametry przestrzenne lub typ jednostki, jako parametr, w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== Liczy przedmiotowy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie przedmiotowe. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} ==== Liczy dyskusyjny typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie dyskusji. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === Funkcje typu jednostki wersji trzeciej === ==== {{Code|p["Typ jednostki 3"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących przestrzenie nazw przedmiotowe. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== Liczy dyskusyjne typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących przestrzenie nazw dyskusji. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> rog1gbkq1h5zjspj181hsralhd067tx 541176 541175 2026-04-28T09:32:34Z Persino 2851 /* {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} */ 541176 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Różne rodzaje i typy funkcji typów jednostek == === Funkcje typu jednostki podstawowe === ==== {{Code|p["Typ jednostki"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych. Typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== Liczy przedmiotowy typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw przedmiotowe. Przedmiotowy typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na przedmiotowy, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== Liczy dyskusyjny typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw dyskusji. Dyskusyjny typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Dyskusyjny typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === Funkcje typu jednostki wersji drugiej === ==== {{Code|p["Typ jednostki 2"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki. Typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki. Gdy parametry przestrzenne lub typ jednostki, jako parametr, w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== Liczy przedmiotowy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie przedmiotowe. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} ==== Liczy dyskusyjny typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie dyskusji. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === Funkcje typu jednostki wersji trzeciej === ==== {{Code|p["Typ jednostki 3"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== Liczy przedmiotowy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących przestrzenie nazw przedmiotowe. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== Liczy dyskusyjne typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących przestrzenie nazw dyskusji. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> aepm7aneh8g852jceen100mz6bn5hmj 541177 541176 2026-04-28T09:44:17Z Persino 2851 541177 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Różne rodzaje i typy funkcji typów jednostek == === Funkcje typu jednostki podstawowe === ==== {{Code|p["Typ jednostki"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych. Typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== Liczy przedmiotowy typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw przedmiotowe. Przedmiotowy typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na przedmiotowy, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== Liczy dyskusyjny typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw dyskusji. Dyskusyjny typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Dyskusyjny typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === Funkcje typu jednostki wersji drugiej === ==== {{Code|p["Typ jednostki 2"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki. Typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki. Gdy parametry przestrzenne lub typ jednostki, jako parametr, w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== Liczy przedmiotowy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie przedmiotowe. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} ==== Liczy dyskusyjny typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie dyskusji. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === Funkcje typu jednostki wersji trzeciej === ==== {{Code|p["Typ jednostki 3"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== Liczy przedmiotowy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących przestrzenie nazw przedmiotowe. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== Liczy dyskusyjne typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących przestrzenie nazw dyskusji. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> dvuqt96iqtzsqe4yh074zv1csmex01g 541178 541177 2026-04-28T09:46:23Z Persino 2851 /* {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} */ 541178 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Różne rodzaje i typy funkcji typów jednostek == === Funkcje typu jednostki podstawowe === ==== {{Code|p["Typ jednostki"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych. Typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== Liczy przedmiotowy typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw przedmiotowe. Przedmiotowy typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na przedmiotowy, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== Liczy dyskusyjny typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw dyskusji. Dyskusyjny typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Dyskusyjny typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === Funkcje typu jednostki wersji drugiej === ==== {{Code|p["Typ jednostki 2"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki. Typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki. Gdy parametry przestrzenne lub typ jednostki, jako parametr, w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== Liczy przedmiotowy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie przedmiotowe. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} ==== Liczy dyskusyjny typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie dyskusji. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === Funkcje typu jednostki wersji trzeciej === ==== {{Code|p["Typ jednostki 3"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== Liczy przedmiotowy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących przestrzenie nazw przedmiotowe. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== Liczy dyskusyjne typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących przestrzenie nazw dyskusji. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Dyskusyjny typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> apuw0n97x5wg3vp2jew0haaqpzfcyb7 541179 541178 2026-04-28T09:47:44Z Persino 2851 /* {{Code|p["Typ jednostki"](frame,i)}} */ 541179 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Różne rodzaje i typy funkcji typów jednostek == === Funkcje typu jednostki podstawowe === ==== {{Code|p["Typ jednostki"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, reprezentujących przestrzenie. Typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== Liczy przedmiotowy typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw przedmiotowe. Przedmiotowy typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na przedmiotowy, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== Liczy dyskusyjny typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw dyskusji. Dyskusyjny typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Dyskusyjny typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === Funkcje typu jednostki wersji drugiej === ==== {{Code|p["Typ jednostki 2"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki. Typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki. Gdy parametry przestrzenne lub typ jednostki, jako parametr, w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== Liczy przedmiotowy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie przedmiotowe. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} ==== Liczy dyskusyjny typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie dyskusji. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === Funkcje typu jednostki wersji trzeciej === ==== {{Code|p["Typ jednostki 3"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== Liczy przedmiotowy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących przestrzenie nazw przedmiotowe. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== Liczy dyskusyjne typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących przestrzenie nazw dyskusji. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Dyskusyjny typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> igx4p98cnxe2yg11xjjy2xt6ajkm0jq 541180 541179 2026-04-28T09:49:15Z Persino 2851 541180 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Różne rodzaje i typy funkcji typów jednostek == === Funkcje typu jednostki podstawowe === ==== {{Code|p["Typ jednostki"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, reprezentujących odpowiednie przestrzenie nazw. Typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki"](frame,i)}} ==== Liczy przedmiotowy typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw przedmiotowe. Przedmiotowy typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na przedmiotowy, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki"](frame,i)}} ==== Liczy dyskusyjny typ jednostki, z parametrów przestrzennych, reprezentujących przestrzenie nazw dyskusji. Dyskusyjny typ jednostki policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, aby się liczyła należy użyć funkcji {{Code|{{sr|#p["Dyskusyjny typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,0); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki po transformacji na przedmiotowy. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} === Funkcje typu jednostki wersji drugiej === ==== {{Code|p["Typ jednostki 2"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących odpowiednie przestrzenie nazw. Typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki. Gdy parametry przestrzenne lub typ jednostki, jako parametr, w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 2"](frame,i)}} ==== Liczy przedmiotowy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie przedmiotowe. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych po przekształceniu na przedmiotową może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej, czy „Dyskusja”), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki 2"](frame,i)}} ==== Liczy dyskusyjny typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki., reprezentujące przestrzenie dyskusji. Przedmiotowy typ jednostki jest liczony z przestrzeni nazw z parametrów nazw przestrzennych może odpowiadać wartości przestrzeni głównej (wtedy to odpowiada przestrzeni głównej), to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru. Gdy parametry przestrzenne lub typ jednostki w drugim podejściu nie wskazują na przestrzeń główną, to wtedy działanie tej funkcji jest podobne do {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki 2"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki po transformacji na dyskusji, a jeżeli jest już taka, to nie ma zadnego przekształcenia; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,1); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 2|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} === Funkcje typu jednostki wersji trzeciej === ==== {{Code|p["Typ jednostki 3"](frame,i)}} ==== Liczy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących odpowiednie przestrzenie nazw. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,0,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Typ jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Typ jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} ==== {{Code|p["Przedmiotowy typ jednostki 3"](frame,i)}} ==== Liczy przedmiotowy typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących przestrzenie nazw przedmiotowe. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Przedmiotowy typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Przedmiotowy typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,1,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|Dyskusja szablonu|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw i=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw{{=}}Dyskusja pomocy|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw=Dyskusja pomocy|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Dyskusja pomocy:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Przedmiotowy typ jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki 2=Dyskusja pomocy:Strona|numer jednostki=2}}}} ==== {{Code|p["Dyskusyjny typ jednostki 3"](frame,i)}} ==== Liczy dyskusyjne typ jednostki bezpośrednio z parametrów przestrzennych, ewentualnie, gdy odpowiednie parametry przestrzenne osiągną pewną wartość, wtedy się liczą nazwy jednostki, reprezentujących przestrzenie nazw dyskusji. Typ jednostki dla parametrów bazowych policzony z przestrzeni nazw z parametrów nazw przestrzennych odpowiadających wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się nie liczy w tej funkcji, wtedy ona działa jak {{Code|{{sr|#p["Dyskusyjny typ jednostki"](frame,i)|p=Pudełko/Tom III}}}}. Typ jednostki dla parametrów numerkowych jest liczony z przestrzeni nazw z parametrów nazw przestrzennych, która może odpowiadać wartości przestrzeni głównej, to wtedy odpowiednia przestrzeń nazw z parametru nazwy jednostki się liczy w tej funkcji, wtedy jest liczona nazwa przestrzeni nazw z tego parametru, a potem typ jednostki, wtedy ona działa jak {{Code|{{sr|#p["Dyskusyjny typ jednostki 2"](frame,i)|p=Pudełko/Tom III}}}}. Definicja skrótowa funkcji: <syntaxhighlight lang="lua"> p["Dyskusyjny typ jednostki 3"]=function(frame,i)...end; </syntaxhighlight> Wtedy ciało funkcji tej, czyli jego definicja w środku, jest: <syntaxhighlight lang="lua"> local pudelko_pomocne_modul=require("Module:Pudełko/Pomocne"); -- Liczony jest typ jednostki bezposrednio bez transformacji; return pudelko_pomocne_modul.Typ_jednostki(frame,2,i,nil); </syntaxhighlight> Te funkcje korzystają z {{Code|{{sr|#p.Typ_jednostki(frame,...)|p=Pudełko/Pomocne}}}}, wywołane z pierwszym parametrem ramki tablicy transportu i pozostałymi parametrami. Ta funkcja liczy typ jednostki bez żadnej transformacji. Przykłady w wikikodzie: * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|Szablon|nazwa przestrzeni nazw i{{=}}Moja przestrzeń|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|Szablon|nazwa przestrzeni nazw i=Moja przestrzeń|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw i=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw{{=}}Pomoc|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw=Pomoc|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw 2=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} * {{Code|{{m|Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw{{=}}|nazwa jednostki 2{{=}}Pomoc:Strona|numer jednostki{{=}}2}}}} → {{Tt|{{#invoke:Pudełko|Dyskusyjny typ jednostki 3|nazwa przestrzeni nazw=|nazwa jednostki 2=Pomoc:Strona|numer jednostki=2}}}} {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> 99cc7vfd267dst02rv33z3fvoxr6qn9 Wikibooks:Moduły/Pudełko/Tom IV 4 63498 541181 2026-04-28T09:51:15Z Persino 2851 Utworzono nową stronę "<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} ===…" 541181 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> n85x1o1puwn24fy0r1a2j7djjqu2nj8 541183 541181 2026-04-28T10:24:46Z Persino 2851 541183 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje budująca funkcje błędów pudełka == === {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe(frame,...)|p=Pudełko/Potrzebne}}}} === Funkcje błędów pudełka wywołują funkcję {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe(frame,...)|p=Pudełko/Potrzebne}}}}, z różnymi parametrami. Przedstawimy działanie tej funkcji mieszczącej sie na stronie {{Code|{{ld|Pudełko/Potrzebne|Pudełko - Potrzebne}}}}. Definicja skrótowa: <syntaxhighlight lang="lua"> function p.Problemy_kontenerowe_szablonowe(frame, kod_liczbowy_przestrzeni_nazw)...end; </syntaxhighlight> Parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|kod_liczbowy_przestrzeni_nazw}} - czy przestrzeń nazwma liczyć normalnie, przedmiotowo kub dyskusyjnie. ==== Parametry funkcji ==== == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> lfkehpt87jac3dxqef7vg7ijqbb0lnp 541184 541183 2026-04-28T10:25:17Z Persino 2851 /* {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe(frame,...)|p=Pudełko/Potrzebne}}}} */ 541184 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje budująca funkcje błędów pudełka == === {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe(frame,...)|p=Pudełko/Potrzebne}}}} === Funkcje błędów pudełka wywołują funkcję {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe(frame,...)|p=Pudełko/Potrzebne}}}}, z różnymi parametrami. Przedstawimy działanie tej funkcji mieszczącej sie na stronie {{Code|{{ld|Pudełko/Potrzebne|Pudełko - Potrzebne}}}}. Definicja skrótowa: <syntaxhighlight lang="lua"> function p.Problemy_kontenerowe_szablonowe(frame, kod_liczbowy_przestrzeni_nazw)...end; </syntaxhighlight> Parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|kod_liczbowy_przestrzeni_nazw}} - czy przestrzeń nazw ma liczyć normalnie, przedmiotowo, czy dyskusyjnie. ==== Parametry funkcji ==== == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> dbxs2j2fzjg521ml4y4oc5c5knb8mw8 541186 541184 2026-04-28T11:39:42Z Persino 2851 /* Parametry funkcji */ 541186 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje budująca funkcje błędów pudełka == === {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe(frame,...)|p=Pudełko/Potrzebne}}}} === Funkcje błędów pudełka wywołują funkcję {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe(frame,...)|p=Pudełko/Potrzebne}}}}, z różnymi parametrami. Przedstawimy działanie tej funkcji mieszczącej sie na stronie {{Code|{{ld|Pudełko/Potrzebne|Pudełko - Potrzebne}}}}. Definicja skrótowa: <syntaxhighlight lang="lua"> function p.Problemy_kontenerowe_szablonowe(frame, kod_liczbowy_przestrzeni_nazw)...end; </syntaxhighlight> Parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|kod_liczbowy_przestrzeni_nazw}} - czy przestrzeń nazw ma liczyć normalnie, przedmiotowo, czy dyskusyjnie. ==== Parametry funkcji ==== ===== {{Code|obsługiwany brudnopis projektu}} ===== ===== {{Code|obsługiwany brudnopis modułu}} ===== ===== {{Code|obsługiwany brudnopis szablonu}} ===== ===== {{Code|nieobsługiwane strony główne}} ===== ===== {{Code|nieobsługiwane strony szablonów}} ===== ===== {{Code|nieobsługiwane strony opisu szablonów}} ===== ===== {{Code|nieobsługiwane strony modułów}} ===== ===== {{Code|nieobsługiwane strony opisu szablonów}} ===== ===== {{Code|nieobsługiwane strony brudnopisu szablonów}} ===== ===== {{Code|nieobsługiwane strony brudnopisu opisu szablonów}} ===== ===== {{Code|nieobsługiwane strony brudnopisu modułów}} ===== ===== {{Code|nieobsługiwane strona brudnopisu opisu modułów}} ===== ===== {{Code|nieobsługiwane strony jednostek programowych}} ===== ===== {{Code|nieobsługiwane strony opisu jednostek programowych}} ===== ===== {{Code|nieobsługiwane strony główne użytkowników}} ===== ===== {{Code|nieobsługiwana strona główna projektu}} ===== ===== {{Code|nieobsługiwana strona główna dla dzieci}} ===== ===== {{Code|obsługiwane niebieżące wiki}} ===== ===== {{Code|nieobsługiwane polskie wiki}} ===== ===== {{Code|nieobsługiwane lokalne wiki}} ===== ===== {{Code|wyłącz niezależność od nazwij jednostką}} ===== ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== ==== Inne parametry ==== ===== {{Code|bez kategorii}} ===== ===== {{Code|nazwij jednostką}} ===== ===== {{Code|bez szczegółów}} ===== == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> jvq20z0tfi5fibyo6z713t3k01obgvv 541187 541186 2026-04-28T11:57:48Z Persino 2851 /* Parametry funkcji */ 541187 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje budująca funkcje błędów pudełka == === {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe(frame,...)|p=Pudełko/Potrzebne}}}} === Funkcje błędów pudełka wywołują funkcję {{Code|{{sr|#p.Problemy_kontenerowe_szablonowe(frame,...)|p=Pudełko/Potrzebne}}}}, z różnymi parametrami. Przedstawimy działanie tej funkcji mieszczącej sie na stronie {{Code|{{ld|Pudełko/Potrzebne|Pudełko - Potrzebne}}}}. Definicja skrótowa: <syntaxhighlight lang="lua"> function p.Problemy_kontenerowe_szablonowe(frame, kod_liczbowy_przestrzeni_nazw)...end; </syntaxhighlight> Parametry: * {{Code|frame}} - tablica ramki tablicy transportu, * {{Code|kod_liczbowy_przestrzeni_nazw}} - czy przestrzeń nazw ma liczyć normalnie, przedmiotowo, czy dyskusyjnie. ==== Parametry funkcji ==== ===== {{Code|obsługiwany brudnopis projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|obsługiwany brudnopis projektu{{=}}tak}}}}. ===== {{Code|obsługiwany brudnopis modułu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|obsługiwany brudnopis modułu{{=}}tak}}}}. ===== {{Code|obsługiwany brudnopis szablonu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|obsługiwany brudnopis szablonu{{=}}tak}}}}. ===== {{Code|nieobsługiwane strony główne}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony główne{{=}}tak}}}}. ===== {{Code|nieobsługiwane strony szablonów}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony szablonów{{=}}tak}}}}. ===== {{Code|nieobsługiwane strony opisu szablonów}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony opisu szablonów{{=}}tak}}}}. ===== {{Code|nieobsługiwane strony modułów}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony modułów{{=}}tak}}}}. ===== {{Code|nieobsługiwane strony opisu szablonów}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony opisu szablonów{{=}}tak}}}}. ===== {{Code|nieobsługiwane strony brudnopisu szablonów}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony brudnopisu szablonów{{=}}tak}}}}. ===== {{Code|nieobsługiwane strony brudnopisu opisu szablonów}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony brudnopisu opisu szablonów{{=}}tak}}}}. ===== {{Code|nieobsługiwane strony brudnopisu modułów}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony brudnopisu modułów{{=}}tak}}}}. ===== {{Code|nieobsługiwane strona brudnopisu opisu modułów}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strona brudnopisu opisu modułów{{=}}tak}}}}. ===== {{Code|nieobsługiwane strony jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony jednostek programowych{{=}}tak}}}}. ===== {{Code|nieobsługiwane strony opisu jednostek programowych}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony opisu jednostek programowych{{=}}tak}}}}. ===== {{Code|nieobsługiwane strony główne użytkowników}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane strony główne użytkowników{{=}}tak}}}}. ===== {{Code|nieobsługiwana strona główna projektu}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwana strona główna projektu{{=}}tak}}}}. ===== {{Code|nieobsługiwana strona główna dla dzieci}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwana strona główna dla dzieci{{=}}tak}}}}. ===== {{Code|obsługiwane niebieżące wiki}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|obsługiwane niebieżące wiki{{=}}tak}}}}. ===== {{Code|nieobsługiwane polskie wiki}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane polskie wiki{{=}}tak}}}}. ===== {{Code|nieobsługiwane lokalne wiki}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|nieobsługiwane lokalne wiki{{=}}tak}}}}. ===== {{Code|wyłącz niezależność od nazwij jednostką}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|wyłącz niezależność od nazwij jednostką{{=}}tak}}}}. ===== {{Code|obsługiwane indywidua użytkownika jako normalne strony}} ===== Tę funkcje z tym parametrem wywołujemy umieszczając szablon z nim w jakieś przestrzeni nazw, a to wywołanie wygląda, w ktorych jeden z parametrów jest: : {{Code|{{m|Pudełko|Błędy pudełka|obsługiwane indywidua użytkownika jako normalne strony{{=}}tak}}}}. ==== Inne parametry ==== ===== {{Code|bez kategorii}} ===== ===== {{Code|nazwij jednostką}} ===== ===== {{Code|bez szczegółów}} ===== == Funkcje błędów pudełka == === {{Code|p["Błędy pudełka"](frame)}} === === {{Code|p["Przedmiotowe błędy pudełka"](frame)}} === === {{Code|p["Dyskusyjne błędy pudełka"](frame)}} === == Funkcje chech pudełka == === {{Code|p["Cecha pudełka"](frame)}} === === {{Code|p["Przedmiotowa cecha pudełka"](frame)}} === === {{Code|p["Dyskusyjna cecha pudełka"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> trzww30tlj3r9wudnkaspluux10haux Wikibooks:Moduły/Pudełko/Tom V 4 63499 541182 2026-04-28T09:51:59Z Persino 2851 Utworzono nową stronę "<noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa st…" 541182 wikitext text/x-wiki <noinclude>{{ProstaStronaStart | nagłówek = {{Podrozdział|{{ld2|Pudełko}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}} | stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}} }}</noinclude> {{Spis treści}} == Funkcje ogólnego pudełka == === {{Code|p["Ogólne pudełko"](frame)}} === == Funkcje ogólne == === {{Code|p["Tekst pudełka"](frame)}} === == Funkcje nazw stron == === {{Code|p["Nazwa strony głównej projektu"](frame,i)}} === === {{Code|p["Nazwa strony głównej dla dzieci projektu"](frame,i)}} === == Funkcje kodów == === {{Code|p["Kod języka"](frame,i)}} === === {{Code|p["Kod projektu"](frame,i)}} === === {{Code|p["Klucz projektu"](frame,i)}} === == Funkcje wiki == === {{Code|p["Inny niż język bieżący wiki"](frame)}} === === {{Code|p["Inne niż lokalne wiki"](frame)}} === === {{Code|p["Inne niż bieżące wiki"](frame)}} === == Funkcje typów parametrów, czy podane je == === {{Code|p["Podano parametry nienazwane"](frame)}} === === {{Code|p["Podano parametry numerowane"](frame)}} === === {{Code|p["Podano parametry nazwane"](frame)}} === == Funkcje kodów tego projektu == === {{Code|p["Kod projektu tego projektu"](frame)}} === === {{Code|p["Kod języka tego projektu"](frame)}} === === {{Code|p["Klucz projektu tego projektu"](frame)}} === == Funkcje stron == === {{Code|p["Strona główna tego projektu"](frame)}} === === {{Code|p["Strona główna dla dzieci tego projektu"](frame)}} === == Funkcje nazw stron drugiej wersji == === {{Code|p["Nazwa strony głównej dla dzieci projektu 2"](frame)}} === === {{Code| p["Nazwa strony głównej projektu 2"](frame)}} === {{BrClear}} <noinclude><!-- -->{{ProstaStronaKoniec}}<!-- -->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!-- --></noinclude> s0xm3u5tu7sm9hfwc0ovg5f827e9rtc